3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = array(array('id' => '10', 'name' => 'aaa', 'nodes' =>array()), array('id' => '11', 'name' => 'bbb','nodes' =>array('id' => '21', 'name' => 'aaaaaa','nodes'=> array("11"=>"haha"))), array('id' => '12', 'name' => 'ccc', 'nodes' =>array()), array('id' => '13', 'name' => 'ddd', 'nodes' =>array('id' => '23', 'name' => 'cccccc','nodes'=> array())), array('id' => '14', 'name' => 'eee', 'nodes' =>array()) ); function FormatTagString($num){ $tag = "-"; $string=""; for ($i=0;$i<$num;$i++){ $string.=$tag; } return $string; } function GetTree($array,$level){ global $tree; foreach ($array as $k=>$v){ if (!is_array($v))$tree.=FormatTagString($level).$v."<br />"; else GetTree($v,$level+1); } return $tree; } $string = GetTree($array,1); print_r($string);

preferences:
49.92 ms | 402 KiB | 5 Q