记录PHP省市区转换
PHP脑残代码(时间有点赶)(有好的算法请留言,感谢)
$area = file_get_contents(app()->getRootPath() ."public/json/china_area.json");
$area_arr = json_decode($area,1);
$list = [];
foreach ($area_arr as $k=>$v) {
foreach ($v as $k2 => $v2) {
if($k == '86'){
$list[$k2] = [
'value' => $k2,
'label' => $v2,
];
}else{
$list[$k]['children'][$k2] = [
'value' => $k2,
'label' => $v2,
];
}
}
}
foreach ($list as $k=>&$v){
foreach ($v['children'] as $k2 => &$v2) {
if(isset($area_arr[$k2]) && $area_arr[$k2]){
foreach ($area_arr[$k2] as $k3=>$v3){
$v2['children'][] = [
'value' => $v3,
'label' => $k3,
];
}
}
}
}
$arr = array_values($list);
foreach ($arr as &$item){
$item['children'] = array_values($item['children']);
foreach ($item['children'] as &$child){
if (isset($child['children']) && $child['children']){
$child['children'] = array_values($child['children']);
}
}
}
pd(json_encode($arr));