3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = array( array( 'id' => 1, 'children' => array( array( 'id' => 6, 'children' => array( array( 'id' => 7, ), array( 'id' => 8, ) ), // Expected // 'level' => '2', ), array( 'id' => 9, ) ), // Expected //'level' => '1' ), array( 'id' => 2, 'children' => array( array( 'id' => 10, ), array( 'id' => 13, 'children' => array( array( 'id' => 14, ), array( 'id' => 19, 'children' => array( array( 'id' => 20, ), array( 'id' => 21, ), array( 'id' => 22, ), array( 'id' => 23, ), ), // Expected //'level' => '3' ) ), // Expected //'level' => '2' ), ), // Expected //'level' => '1' ) ); function updateTreeArray(&$array, $level = 1) { foreach($array as &$item) { if (array_key_exists('children', $item) && is_array($item['children'])) { $item['level'] = $level; updateTreeArray($item['children'], $level + 1); } } } updateTreeArray($array); print_r($array);

preferences:
24.98 ms | 404 KiB | 5 Q