php递归实现无限级分类的方法是什么

53次阅读
没有评论

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

实现无限级分类的一种常用方法是使用递归。
下面是一个使用递归实现无限级分类的示例代码:

function buildTree($categories, $parentId = 0) {$tree = array();
foreach ($categories as $category) {if ($category['parent_id'] == $parentId) {$children = buildTree($categories, $category['id']);
if ($children) {$category['children'] = $children;
}
$tree[] = $category;}
}
return $tree;
}
// 示例数据
$categories = array(array('id' => 1, 'parent_id' => 0, 'name' => 'Category 1'),
array('id' => 2, 'parent_id' => 0, 'name' => 'Category 2'),
array('id' => 3, 'parent_id' => 1, 'name' => 'Category 1.1'),
array('id' => 4, 'parent_id' => 1, 'name' => 'Category 1.2'),
array('id' => 5, 'parent_id' => 3, 'name' => 'Category 1.1.1'),
array('id' => 6, 'parent_id' => 2, 'name' => 'Category 2.1'),
);
$tree = buildTree($categories);
print_r($tree);

输出结果:

Array
([0] => Array
([id] => 1
[parent_id] => 0
[name] => Category 1
[children] => Array
([0] => Array
([id] => 3
[parent_id] => 1
[name] => Category 1.1
[children] => Array
([0] => Array
([id] => 5
[parent_id] => 3
[name] => Category 1.1.1
)
)
)
[1] => Array
([id] => 4
[parent_id] => 1
[name] => Category 1.2
)
)
)
[1] => Array
([id] => 2
[parent_id] => 0
[name] => Category 2
[children] => Array
([0] => Array
([id] => 6
[parent_id] => 2
[name] => Category 2.1
)
)
)
)

上述代码中,buildTree 函数接收一个包含分类数据的数组和一个指定的父分类 ID。它通过遍历分类数组,找到所有指定父分类 ID 的子分类,并用递归的方式继续遍历子分类的子分类,最终构建出一个无限级分类的树形结构。
这样,你就可以方便地使用这个树形结构来展示无限级分类的数据。

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

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