php 的 引用没看懂,有大哥帮忙解释下吗?

function generateTree($items){

    $tree = array();

    foreach($items as $item){

        if(isset($items[$item['pid']])){

            $items[$item['pid']]['son'][] = &$items[$item['id']];

        }else{

            $tree[] = &$items[$item['id']];

        }

    }

    return $tree;

}

$items = array(

    1 => array('id' => 1, 'pid' => 0, 'name' => '安徽省'),

    2 => array('id' => 2, 'pid' => 0, 'name' => '浙江省'),

    3 => array('id' => 3, 'pid' => 1, 'name' => '合肥市'),

    4 => array('id' => 4, 'pid' => 3, 'name' => '长丰县'),

    5 => array('id' => 5, 'pid' => 1, 'name' => '安庆市'),

);

print_r(generateTree($items));

无限级分类
$items[$item['pid']]['son'][] = &$items[$item['id']];
这句没看明白,我看引用的意思是,不同变量使用同样的值?
但是这句感觉想再追加数组一样?
不太明白。

阅读 1.5k
1 个回答

$items[$item['pid']]['son'][] = &$items[$item['id']];
右边的值在后续循环中会追加子元素,使用引用可以保证左边的输出结果都是最新的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题