新闻资讯

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻资讯列表

php无限级分类查找所有子节点,php分类查找如何实现

发布时间:2023-10-11 11:59:28

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

在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⑴'],

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

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

['id' => 6, 'parent_id' => 3, 'name' => '分类1⑴⑵'],
];

$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的分类的所有子节点,并输出结果。

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