php根据数据生成省市区类型的树型

代码如下,其实主要涉及到引用,最开始自己写的版本使用引用的地方错误,后来网上找到了别人的代码,仅做记录:

function generateTree($items){
    $tree = [];
    foreach($items as &$item){
        $pid = $item['pid'];

        if(isset($items[$pid])){
            $items[$pid]['sub'][] = &$item;
        }else{
            $tree[] = &$item;
        }
    }
    return $tree;
}
$items = [
    1 => ['id' => 1, 'pid' => 0, 'name' => '安徽省'],
    2 => ['id' => 2, 'pid' => 0, 'name' => '浙江省'],
    3 => ['id' => 3, 'pid' => 1, 'name' => '合肥市'],
    4 => ['id' => 4, 'pid' => 3, 'name' => '长丰县'],
    5 => ['id' => 5, 'pid' => 1, 'name' => '安庆市'],
];
print_r(generateTree($items));

来源:PHP无限极分类生成树方法

留下评论

biubiubiu~

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据