$array = array(array('id' => '10', 'name' => 'aaa', 'nodes' =>array()),
array('id' => '11', 'name' => 'bbb','nodes' =>array('id' => '21', 'name' => 'aaaaaa','nodes'=> array(‘这里面有无限分级’))),
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())
);
希望显示结果
aaa
bbb
   aaaaaaa
    下面无限分极
ccc
ddd
   ccccccc
eee想求一个直接输出这个效果的函数,先谢了

解决方案 »

  1.   


    $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);
    试试看
      

  2.   

    用递归函数:function dispalyArray($array){
        var tabindex = "    ".tabindex;
        foreach( $array as $k => $v){
            if( $k == "name" ){
                echo tabindex.$v."\r\n";
            }
            if( $k == "node" && count($array[$k]) > 0 ){
                displayArray($array[$k]);
             }
        }
    }