justsink
justsink
发布于 2周前

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