通八洲科技

如何在嵌套树形结构中递归查找指定 slug 的节点及其子树

日期:2025-12-31 00:00 / 作者:碧海醫心

本文详解如何使用递归函数在具有 "child" 键的多层嵌套数组(如菜单树)中精准定位目标节点,并完整返回其自身及全部后代节点,修复常见递归未正确传递返回值的逻辑缺陷。

在处理树状结构数据(例如导航菜单、分类目录)时,常需根据某个唯一标识(如 slug)查找目标节点并获取其完整子树。原始代码虽具备递归意识,但存在一个关键错误:未将子递归调用的返回值进行判断与透传。当在 child 子数组中找到匹配项时,函数直接结束当前循环,却未将该结果向上级调用栈返回,导致最终返回空数组 []。

以下是修正后的专业实现方案:

核心要点总结:

⚠️ 注意事项:

此方案简洁、高效、符合 PSR-12 编码规范,可直接集成至 Laravel、Symfony 等主流框架的菜单服务中。