这个是我的分类 我在20 的地方 直接加载出 23 也就是在23下去找
然后我打印sql
我们可以明显发现 缺少一部分
二我改成了现在这样 也就是7级
sql语句查询的ID则发生了变化 他默认查询的依旧是最多那一个级别的分类
把你的qb_cms_sort导出来.我们测试一下.
升级过的了
elseif($_type=='sons'){ //所有下一级级栏目,也包括自身,一般用在查询数据库 $s_array = [ $id => $field=='name' ? $array[$id]['name'] : $id, ]; $_pid = $_pid2 = $_pid3 = 0; foreach($array AS $key=>$rs){ if(!$rs['pid'])continue; //$rs['pid']==$id 仅仅第一层直属下级, $rs['pid']==$_pid 下级的下级 $rs['pid']==$_pid2 下级的兄弟 , $rs['pid']==$_pid3 又重新找回父级的兄弟 if($rs['pid']==$id||$rs['pid']==$_pid||$rs['pid']==$_pid2||$rs['pid']==$_pid3){ $s_array[$key] = $field=='name' ? $array[$key]['name'] : $key; if ($rs['pid']!=$array[$id]['pid']) { $_pid2 = $rs['pid']; if($array[$_pid]['pid'] != $array[$key]['pid']){ $_pid3 = $array[$_pid]['pid']; } } $_pid = $key; } } return $s_array; }