public function geiada(){
//先从数据库查询需要的数据
$allData = M("region")->field('id, pid, name, level')->select();
// 格式化
$tree = [];
foreach ($allData as $pKey => $province) {
if ($province['level'] == 1) { // 省份
//$tree[$province['id']] = $province;
unset($allData[$pKey]);
foreach ($allData as $cKey => $city) {
if ($city['level'] == 2 && $city['pid'] == $province['id']) { // 城市
/*$tree[$province['id']]['city'][$city['id']] = $city;
$tree[] = $city;*/
unset($allData[$cKey]);
foreach ($allData as $rKey => $region) {
if ($region['level'] == 3 && $region['pid'] == $city['id']) { // 地区
$tree[$province['id']][] = $region;
unset($allData[$rKey]);
}
}
}
}
}
}
$result = array();
foreach($tree as $k=>$data){
$res=[];
foreach ($data as $key=>$value){
$res[$value['pid']][] = $value;
}
$result[] = array_values($res);
}
foreach($result as $k1=>$v1){
foreach ($v1 as $v2=>$v3){
foreach ($v3 as $key2 =>$v4){
$result[$k1][$v2][$key2]['label']= $v4['name'];
$result[$k1][$v2][$key2]['value'] = $v4['id'];
unset($result[$k1][$v2][$key2]['id']);
unset($result[$k1][$v2][$key2]['pid']);
unset($result[$k1][$v2][$key2]['name']);
unset($result[$k1][$v2][$key2]['level']);
}
}
}
$this->returnApiSuccess('', $result);
echo '<pre>';
print_r($result);
die;
}
PHP 递推使用
最新推荐文章于 2023-03-28 22:24:03 发布