2 回答

TA貢獻1830條經驗 獲得超9個贊
我不知道它是否適用于所有情況,但在您的情況下效果很好(我猜)
我建議你刪除嵌套數組$condition[1]并直接寫入$condition[1][0]數組(新的數組結構在下面的代碼中)
<?php
$condition = array(
'and',
array(
'field' => 'show_image',
'compare' => '==',
'value' => 1
),
array(
'or',
array(
'field' => 'filter',
'compare' => '!=',
'value' => 1
),
array(
'field' => 'align',
'compare' => '==',
'value' => 'left'
)
)
);
function generateExpression( Array $condition ) : String
{
return $condition['field'] . " " . $condition['compare'] . " " . $condition['value'];
}
function generateConditionExpression ( Array $conditionTree ) : String
{
if ( array_key_exists("field",$conditionTree) )
{
return generateExpression($conditionTree);
}
//else
return "(" . generateConditionExpression( $conditionTree[1] ) . " " . $conditionTree[0] . " " . generateConditionExpression( $conditionTree[2] ) . ")";
}
echo generateConditionExpression($condition);
- 2 回答
- 0 關注
- 173 瀏覽
添加回答
舉報