3v4l.org

run code in 300+ PHP versions simultaneously
<?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; ?>

preferences:
55.19 ms | 406 KiB | 5 Q