账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    这段php代码怎么个执行逻辑,没看懂请教一下?
    32
    0
         $items = array(
                1 => array('id' => 1, 'pid' => 0, 'name' => '北京市'),
                2 => array('id' => 2, 'pid' => 0, 'name' => '黑龙江省'),
                3 => array('id' => 3, 'pid' => 1, 'name' => '海淀区'),
                4 => array('id' => 4, 'pid' => 2, 'name' => '哈尔滨市'),
                6 => array('id' => 6, 'pid' => 3, 'name' => '清华大学'),
                5 => array('id' => 5, 'pid' => 2, 'name' => '鸡西市'),
                7 => array('id' => 7, 'pid' => 3, 'name' => '北京大学')
            );
        print_r($this->genTree5($items));
        //这个函数怎么理解
        public function genTree5($items) {
            foreach ($items as $item)
                $items[$item['pid']]['son'][$item['id']] = &$items[$item['id']];
            return isset($items[0]['son']) ? $items[0]['son'] : array();
        }

    我在网上找的无限分类转换n维数组,5行就完成了,我看不懂啊。也看不到他哪递归了,然而就是这么牛。跟踪调试一下,$items[$item['pid']]'son'];就这里一直重复执行。然后就能输出多维数组,感觉好强大。谁能帮我分析一下,他这个是咋个执行的逻辑。

    我比较菜,还有点笨,就是喜欢代码这东西。

    Array
    (
        [1] => Array
            (
                [id] => 1
                [pid] => 0
                [name] => 北京市
                [son] => Array
                    (
                        [3] => Array
                            (
                                [id] => 3
                                [pid] => 1
                                [name] => 海淀区
                                [son] => Array
                                    (
                                        [6] => Array
                                            (
                                                [id] => 6
                                                [pid] => 3
                                                [name] => 清华大学
                                            )
    
                                        [7] => Array
                                            (
                                                [id] => 7
                                                [pid] => 3
                                                [name] => 北京大学
                                            )
    
                                    )
    
                            )
    
                    )
    
            )
    
        [2] => Array
            (
                [id] => 2
                [pid] => 0
                [name] => 黑龙江省
                [son] => Array
                    (
                        [4] => Array
                            (
                                [id] => 4
                                [pid] => 2
                                [name] => 哈尔滨市
                            )
    
                        [5] => Array
                            (
                                [id] => 5
                                [pid] => 2
                                [name] => 鸡西市
                            )
    
                    )
    
            )
    
    )
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • じò风流づ少 普通会员 1楼

      很抱歉,您没有提供具体的PHP代码。请您提供一下代码,我才能更好地帮助您理解其执行逻辑。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部