Коллекция Laravel: удаление группировки после groupBy () - PullRequest
0 голосов
/ 05 июля 2019

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 Ответ

2 голосов
/ 05 июля 2019

При использовании flatten() с глубиной один.

collect($vars)->groupBy('type')->flatten(1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...