鍍金池/ 問答/HTML5  Java  PHP  HTML/ php 遞歸返回值的問題

php 遞歸返回值的問題

php 遞歸返回值的問題

請大佬幫我看看 遞歸循環(huán) 查找上級 在循環(huán)里面打印數(shù)據(jù)全部拿到了,但是return 返回數(shù)據(jù)后卻是空,請問是怎么回事??

    public function for_enter($data=array(),$level=0,$shu=array(),$s=0){
        $ui = M('ui');
        $array = array();
        $where['is_enter'] = 1;
        foreach ($data as $k => $v) {
            $child = $ui->where(array('code'=>$v['pcode']))->select();
            if (empty($child)) {
                return '';
            }else{
                if ($child[0]['level'] == 4) {
                    $this->for_enter($child,$level,'');
                }else{
                    if ($child[0]['is_enter'] == 1) {
                    if (($level - $child[0]['level']) == 3) {
                        $shu['three'] = $child[0];
                        $this->for_enter($child,$level,$shu);
                    }
                    
                    if (($level - $child[0]['level']) == 2) {
                        $shu['tow'] = $child[0];
                        $this->for_enter($child,$level,$shu);
                    }
                    if (($level - $child[0]['level']) == 1) {
                        //判斷是幾級
                        $shu['one'] = $child[0];
                        $this->for_enter($child,$level,$shu);
                    }
                    }
                }
            }
            $array[] = $shu;
        }
        
        return $array;
    }

打印數(shù)據(jù)

clipboard.png

clipboard.png

返回數(shù)據(jù)

clipboard.png

clipboard.png

回答
編輯回答
真難過

其實我看到你說返回值為空我大概就知道問題在哪里了,直接看了一下你遞歸調(diào)用函數(shù)的部分。如果沒錯的話,你第一個應(yīng)該是直接進入了 $child[0]['level'] == 4 的條件內(nèi),返回的直接為默認的 $shu = array()

2017年12月21日 06:18
編輯回答
你好胸

在這個地方dump兩個值就知道了clipboard.png

2018年5月26日 00:14