<?php
$condition = array(
'AND',
array(
array(
'field' => 'grid_enable',
'compare' => '==',
'value' => 1
),
),
array(
array(
'field' => 'grid_column',
'compare' => '>=',
'value' => 3
),
),
array(
'OR',
array(
'field' => 'filter',
'compare' => '!=',
'value' => 1
),
array(
'field' => 'align',
'compare' => '==',
'value' => 'left'
)
),
array(
array(
'field' => 'grid_gutter',
'compare' => '==',
'value' => 'large'
),
),
);
print_r($condition);
$final_result = '';
$double = false;
foreach($condition as $k=>$v){
$result = [];
if(!is_array($v)){
$operator_out = $v;
}else{
foreach($v as $k1=>$v1){
if(!is_array($v1)){
$operator_inn = $v1;
}else{
$result[] = implode(' ',array_values($v1));
}
}
}
if(count($result) == 1){
if($double){
$final_result.= " ".$operator_out." ".$result[0];
}else{
$final_result.= $result[0]." ".$operator_out." ";
}
}
else if(count($result) == 2){
$final_result.= "(".implode(" $operator_inn " , $result).")";
$double= true;
}
}
echo $final_result;
?>
- Output for 7.1.25 - 7.1.30, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.13
- Array
(
[0] => AND
[1] => Array
(
[0] => Array
(
[field] => grid_enable
[compare] => ==
[value] => 1
)
)
[2] => Array
(
[0] => Array
(
[field] => grid_column
[compare] => >=
[value] => 3
)
)
[3] => Array
(
[0] => OR
[1] => Array
(
[field] => filter
[compare] => !=
[value] => 1
)
[2] => Array
(
[field] => align
[compare] => ==
[value] => left
)
)
[4] => Array
(
[0] => Array
(
[field] => grid_gutter
[compare] => ==
[value] => large
)
)
)
grid_enable == 1 AND grid_column >= 3 AND (filter != 1 OR align == left) AND grid_gutter == large
preferences:
155.71 ms | 411 KiB | 5 Q