public static function linkage()
{
//由於數據量太大,只循環了pid=1的數據 (查詢省市區的id,區域名稱,父級id)
$data = Address::whereIn('type',[2,3,4])->get(['id','name','pid'])->toArray();
return self::getTree($data);
}
//遞歸
public static function getTree($data,$pid =1)
{
$list = [];
foreach ($data as $value)
{
//第一次遍歷,找到父節點為1的
if ($value['pid'] == $pid){
//開始遞歸,查找父id為該節點id的節點
if (!empty(self::getTree($data, $value['id']))){
$value['childList'] = self::getTree($data, $value['id']);
}
$list[] = $value;
}
}
return $list;