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

2019年1月21日 0 作者 筱枫

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

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));

来源:樂威壯 25852.html”>PHP无限极分类生成树方法