

这个是我的分类 我在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;
}