1. 领加网络的博客首页
  2. 代码库

PHP利用引用,将二维数组转成树形结构

generateTree($data){
    $refer = [];//临时数组
    $tree = [];//树状结构
    $list = [];//二维带level
    foreach ($data as $key => $value) {
        $refer[$value['id']] = &$data[$key];
    }
    foreach ($data as $k => $v) {
        if (isset($refer[$v['pid']])) {
            $pack = &$refer[$v['pid']];
            $pack['children'][] = &$data[$k];
        }
        else
        {
            $tree[] = &$data[$k];
        }
    }
    return $tree;
}

$items = array(
    array('id' => 1, 'pid' => 0, 'name' => '安徽省'),
    array('id' => 2, 'pid' => 0, 'name' => '浙江省'),
    array('id' => 3, 'pid' => 1, 'name' => '合肥市'),
    array('id' => 4, 'pid' => 3, 'name' => '长丰县'),
    array('id' => 5, 'pid' => 1, 'name' => '安庆市'),
);

print_r(generateTree($items));

原创文章,作者:代码加工厂,如若转载,请注明出处:http://blog.lingj.net/2022/10/18/268.html

发表评论

邮箱地址不会被公开。 必填项已用*标注