《PHP实战:php 无限级分类 获取顶级分类ID》要点:
本文介绍了PHP实战:php 无限级分类 获取顶级分类ID,希望对您有用。如果有疑问,可以联系我们。
有这样一个表,id是分类的ID,name是分类名称,pid是上级分类的ID.PHP教程
现在有个分类ID,程序要找到它上级的上级的上级……分类的ID,简单说就是找出顶级分类的ID.
比如“新鲜水果”的ID是13,对应父类ID是5,而5的父ID是1,1没有父类,也就是顶级分类了.PHP教程
以前年轻气盛不懂事,总想着用递归来查找,然后再将结果缓存来办理性能问题.
后来又试过将整个表缓存起来,再递归查找.
再后来……似乎比较少有机会遇到无限级分类……PHP教程
最近有个同事问我怎么“优雅”的办理这个问题.
于是我灵机一动,就有了如下办理方案:PHP教程
- <?php
- $sql = "select id, pid from tablename ";
- // 查询后 将结果处理成 如下数组格式
- $arr = [
- // id => pid
- 1 => 0,
- // 省略...
- 5 => 1,
- // 省略...
- 13 => 5
- ];
- // 建议将这数组缓存起来
- $id = 13;
- while($arr[$id]) {
- $id = $arr[$id];
- }
- echo $id; // 1
不得不说:真是太优雅了!连我都佩服我本身了,同事更是五体投地,痛哭流涕.
因为他写了几十行循环再判断再递归的代码,被我用两行代码替换了……PHP教程
欢迎参与《PHP实战:php 无限级分类 获取顶级分类ID》讨论,分享您的想法,维易PHP学院为您提供专业教程。
转载请注明本页网址:
http://www.vephp.com/jiaocheng/7380.html