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.26, 8.4.1 - 8.4.13
array ( 40 => (object) array( 'id' => '2378', 'params' => (object) array( 'data' => (object) array( ), ), 'parent_id' => '2376', 'parent' => false, ), )
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:
135.44 ms | 410 KiB | 5 Q