不用递归实现无限级分类
适用于 id
,pid
,name
的表结构。
原理: php
引用。
直接上代码:
public function getTree($arr)
{
$items = [];
foreach ($arr as $v)
{
$items[ $v['id'] ] = $v;
}
$tree = [];
foreach ($items as $item)
{
if( isset($items[$item['pid']]) ){
$items[ $item['pid'] ]['children'][] = &$items[$item['id']];
}else{
$tree[] = &$items[$item['id']];
}
}
return $tree;
}
数据格式:
Array
(
[0] => Array
(
[id] => 114
[name] => 一级分类
[pid] => 0
[children] => Array
(
[0] => Array
(
[id] => 125
[name] => 二级分类
[pid] => 114
[children] => Array
(
[0] => Array
(
[id] => 171
[name] => 三级分类
[pid] => 125
)
)
)
[1] => Array
(
[id] => 126
[name] => 二级分类
[pid] => 114
)
)
)
[1] => Array
(
...省略
)
...省略
)
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: