分享一个无限极分类的函数
<?php
/**
* $data 原始数据(二维数组)
* $parent_key 原始数据父级字段
* $child_key 生成子集的字段
*/
function treeArray($data,$parent_key,$child_key){
$tree = [];
foreach ($data as $key => $val) {
if ($val[$parent_key] == 0) {
$tree[] = &$data[$key];
} else {
$data[$val[$parent_key]][$child_key][] = &$data[$key];
}
}
return $tree;
}
$data = [
['id'=>1,'pid'=>0,'name'=>1],
['id'=>2,'pid'=>0,'name'=>2],
['id'=>3,'pid'=>1,'name'=>3],
['id'=>4,'pid'=>2,'name'=>4],
['id'=>5,'pid'=>3,'name'=>5],
['id'=>6,'pid'=>4,'name'=>6],
['id'=>7,'pid'=>5,'name'=>7],
['id'=>8,'pid'=>6,'name'=>8],
];
$tree = treeArray(array_column($data,null,'id'), 'pid','child');
print_r($tree);
?>
本作品采用《CC 协议》,转载必须注明作者和本文链接
gentree了解一下 :relieved:
laravel自带关联模型,实现无限极分类更方便
// 控制器 $list = GoodsCategory::with('allChildren')->first(); dd($list);