二维数组根据某列值归类

// 原数组:
 
[
    {
        "province": "河北省",
        "city": "石家庄市"
    },
    {
        "province": "河北省",
        "city": "衡水市"
    },
    {
        "province": "山西省",
        "city": "太原市"
    },
    {
        "province": "山西省",
        "city": "吕梁市"
    }
]

//期望数组: [ { "province": "河北省", "city": [ "石家庄市", "衡水市" ] }, { "province": "山西省", "city": [ "太原市", "吕梁市" ] } ]

  

 

Coding:

 

        $jsonStr = '[
                    {
                        "province": "河北省",
                        "city": "石家庄市"
                    },
                    {
                        "province": "河北省",
                        "city": "衡水市"
                    },
                    {
                        "province": "山西省",
                        "city": "太原市"
                    },
                    {
                        "province": "山西省",
                        "city": "吕梁市"
                    }
                   ]';
        $list = json_decode($jsonStr, true);
        $nList = [];
        foreach ($list as $val) {
            if (isset($nList[$val['province']])) {
                $nList[$val['province']]['city'][] = $val['city'];
            } else {
                $nList[$val['province']]['province'] = $val['province'];
                $nList[$val['province']]['city'][] = $val['city'];
            }
        }

        echo json_encode(array_values($nList));

 

posted @ 2021-06-07 15:49  杨宇飞  阅读(179)  评论(0编辑  收藏  举报