发布于 6年前
                PHP数组如何根据键值来分割成新数组?
原数组:
$arr = [
        [
                'type_id' => 1,
                'name' => '苹果'
        ],
        [
                'type_id' => 1,
                'name' => '香蕉'
        ],
        [
                'type_id' => 2,
                'name' => '黄瓜'
        ],
        [
                'type_id' => 2,
                'name' => '白菜'
        ]
];
现在我需要根据type_id的值进行数组分割。分割成:
[
    [
            'type_id' => 1,
            'name' => '苹果'
    ],
    [
            'type_id' => 1,
            'name' => '香蕉'
    ]
],
[
    [
            'type_id' => 2,
            'name' => '黄瓜'
    ],
    [
            'type_id' => 2,
            'name' => '白菜'
    ]
]
解决方案:
$list = [];
foreach($arr as $v)
{
        $list[$v['type_id']][] = $v;
}
$list = array_values($list);
print_r($list);