扫码关注官方订阅号
数据库分类表结构如下:
目的:将查询到的记录重新组合,成树形菜单。
1.成功的方案控制器代码如下:
输出结果:
2.失败的方案控制器代码如下:
我使用$cat_tree数组属性来存放查询的结果,输出结果如下:
后面还有好长,总之是不正确的
求解:为何两种输出的结果不一致?其中有什么我需要了解的?
业精于勤,荒于嬉;行成于思,毁于随。
在失败方案中:从第二次循环开始,每次调用get_cat_tree(),都会返回先前存在静态变量之中的整个树结构数组给childern,这个数组包含有之前生成的所有信息。
get_cat_tree()
childern
也就是你想着他会返回下一级的数据,但实际上是返回的东西包含有它父级的信息在里面的。
虽然每次都是重新调用一次get_cat_tree,但是这个方法返回的一直是同一个静态变量,这个静态变量越来越大,每一层都包含有大于等于上一层的所有信息。
get_cat_tree
哈哈,这个有点只可意会不可言传的感觉,你多思考一下就一定能看出了哦~
推荐看下这个资料PHP高效无限级分类教程,希望对你有帮助
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
在失败方案中:从第二次循环开始,每次调用
get_cat_tree(),都会返回先前存在静态变量之中的整个树结构数组给childern,这个数组包含有之前生成的所有信息。也就是你想着他会返回下一级的数据,但实际上是返回的东西包含有它父级的信息在里面的。
虽然每次都是重新调用一次
get_cat_tree,但是这个方法返回的一直是同一个静态变量,这个静态变量越来越大,每一层都包含有大于等于上一层的所有信息。哈哈,这个有点只可意会不可言传的感觉,你多思考一下就一定能看出了哦~
推荐看下这个资料PHP高效无限级分类教程,希望对你有帮助