php无限级分类查找所有子节点

45次阅读
没有评论

共计 1253 个字符,预计需要花费 4 分钟才能阅读完成。

在 PHP 中,可以使用递归来查找无限级分类的所有子节点。下面是一个示例代码:

php
function findAllChildren($category, $parentId, &$result) {

   foreach ($category as $cat) {

       if ($cat['parent_id'] == $parentId) {

           $result[] = $cat;

           findAllChildren($category, $cat['id'], $result);

       }

   }
}

// 假设 $category 是一个包含所有分类信息的数组
$category = [

   ['id' => 1, 'parent_id' => 0, 'name' => ' 分类 1 '],

   ['id' => 2, 'parent_id' => 0, 'name' => ' 分类 2 '],

   ['id' => 3, 'parent_id' => 1, 'name' => ' 分类 1 -1'],

   ['id' => 4, 'parent_id' => 1, 'name' => ' 分类 1 -2'],

   ['id' => 5, 'parent_id' => 3, 'name' => ' 分类 1 -1-1'],

   ['id' => 6, 'parent_id' => 3, 'name' => ' 分类 1 -1-2'],
];

$result = [];
findAllChildren($category, 1, $result); // 查找 id 为 1 的分类的所有子节点

// 输出结果
foreach ($result as $cat) {

   echo $cat['name'] . '
';
}

以上代码首先定义了一个 findAllChildren 函数,该函数接收三个参数:$category是包含所有分类信息的数组,$parentId是要查找子节点的分类的父节点的 id,$result是存储查找结果的数组。

函数内部使用 foreach 循环遍历所有分类信息,如果某个分类的 parent_id 等于要查找的父节点 id,则将该分类添加到结果数组中,并递归调用 findAllChildren 函数查找该分类的子节点。

最后,使用示例数据调用 findAllChildren 函数,在结果数组中查找 id 为 1 的分类的所有子节点,并输出结果。

注意:以上代码仅供参考,实际使用时,你需要根据自己的分类数据结构进行相应的修改。

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-13发表,共计1253字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)