3v4l.org

run code in 300+ PHP versions simultaneously
<?php $groupList = [ [ 'id' => 1, 'parent_id' => null, 'category' => null, 'children_list' => [ [ 'id' => 3, 'parent_id' => 1, 'category' => null, ], [ 'id' => 4, 'parent_id' => 1, 'category' => 'Category number 20', 'children_list' => [ [ 'id' => 7, 'parent_id' => 4, 'category' => null, ], [ 'id' => 8, 'parent_id' => 4, 'category' => 'Category number 30', ], ], ], ], ], 'id' => 2, 'parent_id' => null, 'category' => null, 'children_list' => [ [ 'id' => 5, 'parent_id' => 2, 'category' => null, 'children_list' => [ [ 'id' => 6, 'parent_id' => 5, 'category' => null, ], ], ], ], ]; $filter = array_map(function ($n){return f($n);}, $groupList[0]); echo '<pre>'; print_r($filter); function f(&$a){ foreach($a as $k=>&$r){ if(!$r['category']) unset($a[$k]); if($r['children_list']) $r['children_list']=f($r['children_list']); } return $a; }
Output for 8.0.0 - 8.0.30, 8.1.0 - 8.1.34, 8.2.0 - 8.2.30, 8.3.0 - 8.3.4, 8.3.6 - 8.3.30, 8.4.1 - 8.4.14, 8.4.16 - 8.4.17, 8.5.0 - 8.5.2
Warning: foreach() argument must be of type array|object, int given in /in/T2Rba on line 59 Warning: foreach() argument must be of type array|object, null given in /in/T2Rba on line 59 Warning: foreach() argument must be of type array|object, null given in /in/T2Rba on line 59 Warning: Undefined array key "children_list" in /in/T2Rba on line 61 Warning: Undefined array key "children_list" in /in/T2Rba on line 61 Warning: Undefined array key "children_list" in /in/T2Rba on line 61 <pre>Array ( [id] => 1 [parent_id] => [category] => [children_list] => Array ( [1] => Array ( [id] => 4 [parent_id] => 1 [category] => Category number 20 [children_list] => Array ( [1] => Array ( [id] => 8 [parent_id] => 4 [category] => Category number 30 ) ) ) ) )
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.
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 Warning: foreach() argument must be of type array|object, int given in /in/T2Rba on line 59 Warning: foreach() argument must be of type array|object, null given in /in/T2Rba on line 59 Warning: foreach() argument must be of type array|object, null given in /in/T2Rba on line 59 Warning: Undefined array key "children_list" in /in/T2Rba on line 61 Warning: Undefined array key "children_list" in /in/T2Rba on line 61 Warning: Undefined array key "children_list" in /in/T2Rba on line 61 <pre>Array ( [id] => 1 [parent_id] => [category] => [children_list] => Array ( [1] => Array ( [id] => 4 [parent_id] => 1 [category] => Category number 20 [children_list] => Array ( [1] => Array ( [id] => 8 [parent_id] => 4 [category] => Category number 30 ) ) ) ) )
Output for 7.3.0 - 7.3.31, 7.3.33, 7.4.0 - 7.4.25, 7.4.27 - 7.4.33
Warning: Invalid argument supplied for foreach() in /in/T2Rba on line 59 Warning: Invalid argument supplied for foreach() in /in/T2Rba on line 59 Warning: Invalid argument supplied for foreach() in /in/T2Rba on line 59 Notice: Undefined index: children_list in /in/T2Rba on line 61 Notice: Undefined index: children_list in /in/T2Rba on line 61 Notice: Undefined index: children_list in /in/T2Rba on line 61 <pre>Array ( [id] => 1 [parent_id] => [category] => [children_list] => Array ( [1] => Array ( [id] => 4 [parent_id] => 1 [category] => Category number 20 [children_list] => Array ( [1] => Array ( [id] => 8 [parent_id] => 4 [category] => Category number 30 ) ) ) ) )
Output for 7.3.32, 7.4.26
Warning: Invalid argument supplied for foreach() in /in/T2Rba on line 59 Warning: Invalid argument supplied for foreach() in /in/T2Rba on line 59 Warning: Invalid argument supplied for foreach() in /in/T2Rba on line 59 <pre>Array ( [id] => 1 [parent_id] => [category] => [children_list] => Array ( [1] => Array ( [id] => 4 [parent_id] => 1 [category] => Category number 20 [children_list] => Array ( [1] => Array ( [id] => 8 [parent_id] => 4 [category] => Category number 30 ) ) ) ) )

preferences:
184.49 ms | 417 KiB | 5 Q