递归-实现省市区三级联动


 
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;
 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM