PHP实现无限极分类有哪些方式 ?

面试的时候被问到无限极分类的设计和实现,比较常见的做法是在建表的时候,增加一个PID字段用来区别自己所属的分类

 

据在数据库中存储大概是这个样子,怎么实现无限极递归呢,有两种常用的做法,递归和引用算法

 

 

 

 

 //输出结果 无限极分类实现ok

 

 

 引用算法

 

 

 经过第一步 数据变成了这样

 

 

 使用普通传值输出结果

 

 

 

可以看到 只有河北省和北京市输出出来了 因为他们俩是第一级节点 而且排行1和2,放到$tree数组中之后,没有使用引用传递,那么后续对他俩的子节点的操作都没有在$tree中生效,现在我们更改一下顺序 把邯郸市放到河北省的前面 那么根据咱们的推断 那么邯郸市就应该出现在tree数组里

邯郸市放到河北省前面的输出结果

 

果然是这样 那么证明我们的推断是正确的 现在我们把引用传值改回去 再看一下

使用引用传值输出结果

 

 

 

posted @ 2022-03-21 10:55  被水遗忘の鱼  阅读(38)  评论(0编辑  收藏  举报