记录PHP省市区转换

记录PHP省市区转换

原文件(地址:https://github.com/airyland/china-area-data/blob/master/data.json)

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));

转后文件地址:https://gitee.com/ZJMars/document-warehouse/blob/master/php省市区json

posted @ 2022-04-08 11:32  zjMars  阅读(45)  评论(0)    收藏  举报