3v4l.org

run code in 300+ PHP versions simultaneously
<?php function recurse(&$array, $pid = null) { foreach ($array as $id => $item) { if (isset($item->params->data->menu_display_special) && $item->params->data->menu_display_special == 1) { unset($array[$id]); recurse($array, $item->id); } elseif ($item->parent_id === $pid) { unset($array[$id]); } } } $list = [ 35 => (object)[ 'id' => '2375', 'params' => (object)[ 'data' => (object)[ 'menu_display_special' => '1' ] ], 'parent_id' => '2376', 'parent' => false ], 36 => (object)[ 'id' => '2377', 'params' => (object)[ 'data' => (object)[ 'menu_display_special' => '1' ] ], 'parent_id' => '2376', 'parent' => false ], 37 => (object)[ 'id' => '2379', 'params' => (object)[ 'data' => (object)[ 'menu_display_special' => '1' ] ], 'parent_id' => '2377', 'parent' => false ], 38 => (object)[ 'id' => '2380', 'params' => (object)[ 'data' => (object)[ 'menu_display_special' => '1' ] ], 'parent_id' => '2377', 'parent' => false ], 39 => (object)[ 'id' => '2381', 'params' => (object)[ 'data' => (object)[] ], 'parent_id' => '2377', 'parent' => false ], 40 => (object)[ 'id' => '2378', 'params' => (object)[ 'data' => (object)[] ], 'parent_id' => '2376', 'parent' => false ], ]; recurse($list); var_export($list);
Output for 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.27, 8.4.1 - 8.4.14, 8.5.0
array ( 40 => (object) array( 'id' => '2378', 'params' => (object) array( 'data' => (object) array( ), ), 'parent_id' => '2376', 'parent' => false, ), )
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.28
/bin/php-8.3.28: /usr/lib/libm.so.6: version `GLIBC_2.38' not found (required by /bin/php-8.3.28) /bin/php-8.3.28: /usr/lib/libm.so.6: version `GLIBC_2.35' not found (required by /bin/php-8.3.28) /bin/php-8.3.28: /usr/lib/libc.so.6: version `GLIBC_2.34' not found (required by /bin/php-8.3.28) /bin/php-8.3.28: /usr/lib/libc.so.6: version `GLIBC_2.38' not found (required by /bin/php-8.3.28)
Process exited with code 1.
Output for 7.1.0 - 7.1.33, 7.2.0 - 7.2.33
array ( 40 => stdClass::__set_state(array( 'id' => '2378', 'params' => stdClass::__set_state(array( 'data' => stdClass::__set_state(array( )), )), 'parent_id' => '2376', 'parent' => false, )), )
Output for 5.6.38
array ( 39 => stdClass::__set_state(array( 'id' => '2381', 'params' => stdClass::__set_state(array( 'data' => stdClass::__set_state(array( )), )), 'parent_id' => '2377', 'parent' => false, )), 40 => stdClass::__set_state(array( 'id' => '2378', 'params' => stdClass::__set_state(array( 'data' => stdClass::__set_state(array( )), )), 'parent_id' => '2376', 'parent' => false, )), )

preferences:
174.71 ms | 411 KiB | 5 Q