php 数据 怎么转成固定的json格式
PHP中文网
PHP中文网 2017-04-11 09:19:01
[PHP讨论组]

1.一条数据怎么拼成固定的json格式

每一条数据格式如下:
广东省 广州市 天河区
广东省 广州市 白云区
广东省 广州市 海珠区
广东省 深圳市 罗湖区
广东省 深圳市 福田区
广西省 南宁市 兴宁区
广西省 南宁市 青秀区
广西省 柳州市 城中区
广西省 柳州市 鱼峰区

2.利用php怎么转成以下格式:
[

{'v': '广东省', 'n': '广东省 >', 's': [
  {'v': '广州市', 'n': '广州市', 's': [
    {'v': '天河区', 'n': '天河区'},
    {'v': '白云区', 'n': '白云区'},
    {'v': '海珠区', 'n': '海珠区'}
  ]},
  {'v': '深圳市', 'n': '深圳市', 's': [
    {'v': '罗湖区', 'n': '罗湖区'},
    {'v': '福田区', 'n': '福田区'}
  ]}
]},
{'v': '广西省', 'n': '广西省 >', 's': [
  {'v': '南宁市', 'n': '南宁市', 's': [
    {'v': '兴宁区', 'n': '兴宁区'},
    {'v': '青秀区', 'n': '青秀区'}
  ]},
  {'v': '柳州市', 'n': '柳州市', 's': [
    {'v': '城中区', 'n': '城中区'},
    {'v': '鱼峰区', 'n': '鱼峰区'}
  ]}
]}

]

3.求高手解答

PHP中文网
PHP中文网

认证0级讲师

全部回复(3)
高洛峰
$list=array(
        array('province'=>'广东省','city'=>'广州市','area'=>'天河区'),
        array('province'=>'广东省','city'=>'广州市','area'=>'白云区'),
        array('province'=>'广东省','city'=>'广州市','area'=>'海珠区'),
        array('province'=>'广东省','city'=>'深圳市','area'=>'罗湖区'),
        array('province'=>'广东省','city'=>'深圳市','area'=>'福田区'),
        array('province'=>'广西省','city'=>'南宁市','area'=>'兴宁区'),
        array('province'=>'广西省','city'=>'南宁市','area'=>'青秀区'),
        array('province'=>'广西省','city'=>'柳州市','area'=>'城中区'),
        array('province'=>'广西省','city'=>'柳州市','area'=>'鱼峰区')
    );

$datas=array();
$provinces=array();
$citys=array();
$areas=array();
foreach ($list as $k => $v) {
    $province_encode=base64_encode($v['province']);
    $city_encode=base64_encode($v['city']);
    $area_encode=base64_encode($v['area']);

    $provinces[$province_encode]=array('v'=>$v['province'],'n'=>$v['province'].' >');
    $citys[$province_encode][$city_encode]=array('v'=>$v['city'],'n'=>$v['city']);
    $areas[$province_encode][$city_encode][$area_encode]=array('v'=>$v['area'],'n'=>$v['area']);
}

foreach($provinces as $p_encode=>$p){
    foreach($citys[$p_encode] as $c_encode=>$c){
        foreach($areas[$p_encode][$c_encode] as $a_encode=>$a){
            $c['s'][]=$a;
        }
        $p['s'][]=$c;
    }
    $datas[]=$p;
}

$res=json_encode($datas);
高洛峰

$s = <<<STR
广东省 广州市 天河区
广东省 广州市 白云区
广东省 广州市 海珠区
广东省 深圳市 罗湖区
广东省 深圳市 福田区
广西省 南宁市 兴宁区
广西省 南宁市 青秀区
广西省 柳州市 城中区
广西省 柳州市 鱼峰区
STR;
$data=explode(PHP_EOL,$s);
$res = array_map(function($i){
    return explode(' ', $i);
}, $data);
//print_r($res);
$result = [];
foreach($res as $k=>$v){
    if(isset($result[$v[0]])){
        $result[$v[0]][$v[1]][] = $v[2];
    }else {
        $result[$v[0]][$v[1]] = [$v[2]];
    }
}
//print_r($result);
$arr = [];
foreach($result as $k=>$v){
    $arr[$k] =['v'=>$k,'n'=>$k.' >','s'=>[]];
    foreach($v as $key=>$value){
        $arr[$k]['s'][] = ['v'=>$key,'n'=>$key,'s'=>array_map(function($i){
            return ['v'=>$i,'n'=>$i];
        },$value)];
    }
}
print_r($arr);

echo json_encode(array_values($arr),JSON_UNESCAPED_UNICODE );
Array
(
    [广东省] => Array
        (
            [v] => 广东省
            [n] => 广东省 >
            [s] => Array
                (
                    [0] => Array
                        (
                            [v] => 广州市
                            [n] => 广州市
                            [s] => Array
                                (
                                    [0] => Array
                                        (
                                            [v] => 天河区
                                            [n] => 天河区
                                        )

                                    [1] => Array
                                        (
                                            [v] => 白云区
                                            [n] => 白云区
                                        )

                                    [2] => Array
                                        (
                                            [v] => 海珠区
                                            [n] => 海珠区
                                        )

                                )

                        )

                    [1] => Array
                        (
                            [v] => 深圳市
                            [n] => 深圳市
                            [s] => Array
                                (
                                    [0] => Array
                                        (
                                            [v] => 罗湖区
                                            [n] => 罗湖区
                                        )

                                    [1] => Array
                                        (
                                            [v] => 福田区
                                            [n] => 福田区
                                        )

                                )

                        )

                )

        )

    [广西省] => Array
        (
            [v] => 广西省
            [n] => 广西省 >
            [s] => Array
                (
                    [0] => Array
                        (
                            [v] => 南宁市
                            [n] => 南宁市
                            [s] => Array
                                (
                                    [0] => Array
                                        (
                                            [v] => 兴宁区
                                            [n] => 兴宁区
                                        )

                                    [1] => Array
                                        (
                                            [v] => 青秀区
                                            [n] => 青秀区
                                        )

                                )

                        )

                    [1] => Array
                        (
                            [v] => 柳州市
                            [n] => 柳州市
                            [s] => Array
                                (
                                    [0] => Array
                                        (
                                            [v] => 城中区
                                            [n] => 城中区
                                        )

                                    [1] => Array
                                        (
                                            [v] => 鱼峰区
                                            [n] => 鱼峰区
                                        )

                                )

                        )

                )

        )

)
[{"v":"广东省","n":"广东省 >","s":
[{"v":"广州市","n":"广州市","s":
[{"v":"天河区","n":"天河区"},{"v":"白云区","n":"白云区"},{"v":"海珠区","n":"海珠区"}]},{"v":"深圳市","n":"深圳市","s":[{"v":"罗湖区","n":"罗湖区"},{"v":"福田区","n":"福田区"}]}]},{"v":"广西省","n":"广西省 >","s":[{"v":"南宁市","n":"南宁市","s":[{"v":"兴宁区","n":"兴宁区"},{"v":"青秀区","n":"青秀区"}]},{"v":"柳州市","n":"柳州市","s":[{"v":"城中区","n":"城中区"},{"v":"鱼峰区","n":"鱼峰区"}]}]}]
黄舟

将数组按条添加到关联数组,然后使用json_encode()将数据转换为json格式

$data = ['v' => '广东省','n' => '广州市 ','s' => '天河区'];

在数组中将级别进行归类
最后调用

json_encode($data);

的发哦json格式数据

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号