PHP关于递归和无限级分类问题求解!
迷茫
迷茫 2017-04-11 09:53:48
[PHP讨论组]

数据库分类表结构如下:

目的:将查询到的记录重新组合,成树形菜单。

1.成功的方案
控制器代码如下:

输出结果:

2.失败的方案
控制器代码如下:

我使用$cat_tree数组属性来存放查询的结果,输出结果如下:

后面还有好长,总之是不正确的

求解:为何两种输出的结果不一致?其中有什么我需要了解的?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(2)
阿神

在失败方案中:从第二次循环开始,每次调用get_cat_tree(),都会返回先前存在静态变量之中的整个树结构数组给childern,这个数组包含有之前生成的所有信息。

也就是你想着他会返回下一级的数据,但实际上是返回的东西包含有它父级的信息在里面的。

虽然每次都是重新调用一次get_cat_tree,但是这个方法返回的一直是同一个静态变量,这个静态变量越来越大,每一层都包含有大于等于上一层的所有信息。

哈哈,这个有点只可意会不可言传的感觉,你多思考一下就一定能看出了哦~

PHPz

推荐看下这个资料PHP高效无限级分类教程,希望对你有帮助

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号