$aa = Db::table("do_areacity")->where('deep','<',3)->select()->toArray();
$res=$this->sotr($aa,0);
public function sotr($data,$pid=0,$level=0){
$list =array();
foreach ($data as $k=>&$v){
// dump($v);
// if($level < 3){
if($v['pid'] == $pid){
$level += 1;
$v['son'] = $this->sotr($data,$v['id'],$level);
$list[] = $v;
}
// }else{
// continue;
// }
}
// dd($list);
return $list;
}
输出类似一下数据
...
{
"id": 32,
"pid": 0,
"deep": 0,
"name": "江苏",
"pinyin_prefix": "j",
"pinyin": "jiang su",
"ext_id": "320000000000",
"ext_name": "江苏省",
"son": [{
"id": 3201,
"pid": 32,
"deep": 1,
"name": "南京",
"pinyin_prefix": "n",
"pinyin": "nan jing",
"ext_id": "320100000000",
"ext_name": "南京市",
"son": [{
"id": 320102,
"pid": 3201,
"deep": 2,
"name": "玄武",
"pinyin_prefix": "x",
"pinyin": "xuan wu",
"ext_id": "320102000000",
"ext_name": "玄武区",
"son": []
}, {
"id": 320104,
"pid": 3201,
"deep": 2,
"name": "秦淮",
"pinyin_prefix": "q",
"pinyin": "qin huai",
"ext_id": "320104000000",
"ext_name": "秦淮区",
"son": []
}, {
"id": 320105,
"pid": 3201,
"deep": 2,
"name": "建邺",
"pinyin_prefix": "j",
"pinyin": "jian ye",
"ext_id": "320105000000",
"ext_name": "建邺区",
"son": []
},
...