You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计parent_id结构无限层级分类中指定分类的最高层级数

分类最高层级统计实现调整

现有代码问题

  • 遍历同层级子分类时共用$append变量累加,会导致后遍历的兄弟分类层级被错误抬高
  • 未兼容无任何子分类的边界场景,此时应返回1(仅包含当前分类自身)
  • 仅收集了全部分类路径的层级值,未取最大值得到最深层级

修正后代码

public function getCategoryLevel($category)
{
    // 初始层级为1,即当前分类本身
    $maxLevel = 1;
    foreach ($category->childs as $child) {
        $childMaxLevel = $this->recursiveLevel($child, 2);
        $maxLevel = max($maxLevel, $childMaxLevel);
    }
    return $maxLevel;
}

public function recursiveLevel($item, $currentLevel)
{
    $currentMax = $currentLevel;
    foreach ($item->childs as $child) {
        $childMaxLevel = $this->recursiveLevel($child, $currentLevel + 1);
        $currentMax = max($currentMax, $childMaxLevel);
    }
    return $currentMax;
}

调整说明

  • 移除全局收集层级的$count数组,改为每个子分类树独立返回自身的最大层级,避免变量污染
  • 遍历同层级子分类时,每个子节点的初始层级独立计算,不会被前一个兄弟节点的递归逻辑影响
  • 自动兼容无任何子分类的场景,直接返回正确值1
  • 最终返回所有子分类路径的最大层级,符合包含自身的最深总层级需求

内容的提问来源于stack exchange,提问作者Sushil Aashish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 13:21:01