Laravel Collection:在groupBy()之后删除集合分组

时间:2019-07-05 06:30:43

标签: arrays laravel collections

collect($ vars)-> groupBy()返回的格式为

[
    'catgeory' => [
        ['id' => 1, 'name' => 'name1', 'type' => 'category'],
        ['id' => 2, 'name' => 'name4', 'type' => 'category'],
    ]
    'name' => ['id' => 3, 'name' => 'name2', 'type' => 'name'],
    'value' => ['id' => 4, 'name' => 'name3', 'type' => 'value']
]

更改成这样的最佳方法是删除  分组,但最好使用集合本身

[
    ['id' => 1, 'name' => 'name1', 'type' => 'category'],
    ['id' => 2, 'name' => 'name4', 'type' => 'category'],
    ['id' => 3, 'name' => 'name2', 'type' => 'name'],
    ['id' => 4, 'name' => 'name3', 'type' => 'value'],
]

原始数组是这个:

[
    ['id' => 3, 'name' => 'name2', 'type' => 'name'],
    ['id' => 1, 'name' => 'name1', 'type' => 'category'],
    ['id' => 2, 'name' => 'name4', 'type' => 'category'],
    ['id' => 4, 'name' => 'name3', 'type' => 'value'],
]

1 个答案:

答案 0 :(得分:2)

使用flatten(),深度为一。

collect($vars)->groupBy('type')->flatten(1);