3v4l.org

run code in 300+ PHP versions simultaneously
<?php $input = [ ["relation" => "OR"], ["color" => 'green'], ["color" => 'yellow'], ["relation" => "AND"], ["color" => 'black'], ["color" => 'orange'], ["relation" => "OR"], ["color" => 'blue'], ["color" => 'violet'], ]; $ref = []; $result = &$ref; foreach ($input as $row) { if (key($row) !== 'relation') { // populate current level $ref[] = $row; continue; } if ($ref) { // not the first relation encountered $ref = &$ref[]; } $ref = $row; // store relation } var_export($result);
Output for 8.0.1 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.28, 8.4.1 - 8.4.14, 8.5.0
array ( 'relation' => 'OR', 0 => array ( 'color' => 'green', ), 1 => array ( 'color' => 'yellow', ), 2 => array ( 'relation' => 'AND', 0 => array ( 'color' => 'black', ), 1 => array ( 'color' => 'orange', ), 2 => array ( 'relation' => 'OR', 0 => array ( 'color' => 'blue', ), 1 => array ( 'color' => 'violet', ), ), ), )
Output for 8.4.15
/bin/php-8.4.15: /usr/lib/libm.so.6: version `GLIBC_2.38' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libm.so.6: version `GLIBC_2.35' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libc.so.6: version `GLIBC_2.34' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libc.so.6: version `GLIBC_2.38' not found (required by /bin/php-8.4.15)
Process exited with code 1.

preferences:
119.63 ms | 407 KiB | 5 Q