本帖最后由 xuzuning 于 2013-03-08 14:59:52 编辑

解决方案 »

  1.   

    第 9 行的 $this->accountTreeType1 没有承接第 14 行的返回
      

  2.   


    那为什么echo 时,能打印呢
      

  3.   

    function return了之后表示该方法已经运行完了,后面的代码都不会执行了。
      

  4.   

    $str = D('Account')->accountTreeType1($Data);
      

  5.   

    方法的最后加上
    return $this->strLable;
      

  6.   

    1、class 里strLable定义了没? 
    2、return了 你不接收返回值你是要做什么?
    3、echo 当然可以输出,你是不是没搞清楚什么是递归函数?
      

  7.   

     public function accountTreeType1($arrData){
            $strLable .= '<ul>';
            foreach($arrData as $val){
                if(is_array($val['child'])){
                    $this->accountTreeType1($val['child']);
                }else{
                    $strLable .= '<li>'.$val['acc_code'].$val['acc_name'].'</li>';
                }
            }
            return $strLable.'</ul>';
     }
      

  8.   


    我刚刚代码有return。只是搞不明白,什么时候return。而且在方法最后面加return,那它递归,每次调用都会return不是吗?
      

  9.   

    $val[id],id是什么?应该是$id或者"id"吧...所以根本不会返回$this->strLabel
      

  10.   

    return 是跳出当前方法 你刚才其实调用了当前function好几次  你递归没搞懂
    你最好搞懂 
    return back continue 和递归
      

  11.   

    Array
    (
        [1] => Array
            (
                [id] => 1
                [acc_code] => 1001
                [acc_name] => 库存现金
                [acc_level] => 1
                [acc_detail] => 0
                [acc_parent_id] => 0
                [acc_root_id] => 1
                [acc_state] => 1
                [child] => Array
                    (
                        [38] => Array
                            (
                                [id] => 38
                                [acc_code] => 100101
                                [acc_name] => 深圳现钞
                                [acc_level] => 2
                                [acc_detail] => 0
                                [acc_parent_id] => 1
                                [acc_root_id] => 1
                                [acc_state] => 1
                                [child] => Array
                                    (
                                        [39] => Array
                                            (
                                                [id] => 39
                                                [acc_code] => 10010101
                                                [acc_name] => 詹军涛
                                                [acc_level] => 3
                                                [acc_detail] => 0
                                                [acc_parent_id] => 38
                                                [acc_root_id] => 1
                                                [acc_state] => 1
                                                [child] => Array
                                                    (
                                                        [804] => Array
                                                            (
                                                                [id] => 804
                                                                [acc_code] => 1001010101
                                                                [acc_name] => fdsaf
                                                                [acc_level] => 4
                                                                [acc_detail] => 1
                                                                [acc_parent_id] => 39
                                                                [acc_root_id] => 1
                                                                [acc_state] => 1
                                                            )                                                )                                        )                                    [40] => Array
                                            (
                                                [id] => 40
                                                [acc_code] => 10010102
                                                [acc_name] => 林全茂
                                                [acc_level] => 3
                                                [acc_detail] => 1
                                                [acc_parent_id] => 38
                                                [acc_root_id] => 1
                                                [acc_state] => 1
                                            )                                    [41] => Array
                                            (
                                                [id] => 41
                                                [acc_code] => 10010103
                                                [acc_name] => 吴雪如
                                                [acc_level] => 3
                                                [acc_detail] => 1
                                                [acc_parent_id] => 38
                                                [acc_root_id] => 1
                                                [acc_state] => 1
                                            )                                    [42] => Array
                                            (
                                                [id] => 42
                                                [acc_code] => 10010104
                                                [acc_name] => 关蓉
                                                [acc_level] => 3
                                                [acc_detail] => 1
                                                [acc_parent_id] => 38
                                                [acc_root_id] => 1
                                                [acc_state] => 1
                                            )                                    [43] => Array
                                            (
                                                [id] => 43
                                                [acc_code] => 10010105
                                                [acc_name] => 胡振明
                                                [acc_level] => 3
                                                [acc_detail] => 1
                                                [acc_parent_id] => 38
                                                [acc_root_id] => 1
                                                [acc_state] => 1
                                            )                                    [44] => Array
                                            (
                                                [id] => 44
                                                [acc_code] => 10010106
                                                [acc_name] => 黄锦雄
                                                [acc_level] => 3
                                                [acc_detail] => 1
                                                [acc_parent_id] => 38
                                                [acc_root_id] => 1
                                                [acc_state] => 1
                                            )                                    [45] => Array
                                            (
                                                [id] => 45
                                                [acc_code] => 10010107
                                                [acc_name] => 陈培怀
                                                [acc_level] => 3
                                                [acc_detail] => 1
                                                [acc_parent_id] => 38
                                                [acc_root_id] => 1
                                                [acc_state] => 1
                                            )                                    [46] => Array
                                            (
                                                [id] => 46
                                                [acc_code] => 10010108
                                                [acc_name] => 陈镇江
                                                [acc_level] => 3
                                                [acc_detail] => 1
                                                [acc_parent_id] => 38
                                                [acc_root_id] => 1
                                                [acc_state] => 1
                                            )                                    [789] => Array
                                            (
                                                [id] => 789
                                                [acc_code] => 435435
                                                [acc_name] => fdsaf
                                                [acc_level] => 3
                                                [acc_detail] => 1
                                                [acc_parent_id] => 38
                                                [acc_root_id] => 1
                                                [acc_state] => 1
                                            )                                )                        )                    [47] => Array
                            (
                                [id] => 47
                                [acc_code] => 100102
                                [acc_name] => 广州现钞
                                [acc_level] => 2
                                [acc_detail] => 0
                                [acc_parent_id] => 1
                                [acc_root_id] => 1
                                [acc_state] => 1
                                [child] => Array
                                    (
                                        [48] => Array
                                            (
                                                [id] => 48
                                                [acc_code] => 10010201
                                                [acc_name] => 吴昆伦
                                                [acc_level] => 3
                                                [acc_detail] => 1
                                                [acc_parent_id] => 47
                                                [acc_root_id] => 1
                                                [acc_state] => 1
                                            )                                )                        )                )        )
      

  12.   

     public function accountTreeType1($arrData){
            $strLable .= '<ul>';
            foreach($arrData as $val){
                if(is_array($val['child'])){
                    $strLable .= '<li>'.$val['acc_code'].$val['acc_name'].'</li>';
                    $strLable .= $this->accountTreeType1($val['child']);
                }else{
                    $strLable .= '<li>'.$val['acc_code'].$val['acc_name'].'</li>';
                }
            }
            return $strLable.'</ul>';
     }