PHP将数组中某一相同字段作为同级其他字段合并到一起

  
光看标题可能不能明白什么意思,具体还是要看例子,就是我有一个数组$arr里面的name字段相同,因此我想将除name字段以外的字段合并到一个数组里进行汇总

$arr = [
            [
                'name'  => '中国',
                'zd1' => '江苏',
                'zd2'   => '南京'
            ],
            [
                'name'  => '中国',
                'zd1' => '内蒙古',
                'zd2'   => '呼和浩特'

            ],
            [
                'name'  => '小说榜',
                'zd1' => '每日',
                'zd2'   => '坏蛋是怎样炼成的'

            ],
            [
                'name'  => '小说榜',
                'zd1' => '每月',
                'zd2'   => '黑道学生'

            ]

        ];

        $temp = array();
        $result = array();
        foreach ($arr as $item) {

            if (!in_array($item['name'], $temp)) {
                array_push($temp, $item['name']);
                $result[count($temp) - 1]['name'] = $item['name'];
            }
            $result[count($temp) - 1]['list'][] = [
                'zd1' => $item['zd1'],
                'zd2' => $item['zd2']
            ];
        }
        dump($result);
结果如下图所示:
相关文章