<?php $tree = [ '' => function () { return [ 1 ]; }, 1 => function () { return [ 2, 3, 4 ]; }, 2 => function () { return [ 5, 6 ]; }, 3 => function () { return [ 7, 8 ]; }, ]; $queue = new \SplQueue(); $queue->enqueue([ '', 0 ]); while ( ! $queue->isEmpty() ) { [ $parent, $level ] = $queue->dequeue(); echo str_repeat(' ', $level) . $parent . PHP_EOL; $children = isset($tree[ $parent ]) ? $tree[ $parent ]() : []; foreach ( $children as $child ) { $queue->enqueue([ $child, $level + 1 ]); } }
You have javascript disabled. You will not be able to edit any code.