как я могу отформатировать следующую коллекцию Laravel - PullRequest
0 голосов
/ 20 января 2019

Заранее спасибо! У меня есть следующая коллекция в Laravel.

$data = collect([
    [
        'id' => 1,
        'filter' => 'brand',
        'value' => 'apple'
    ],
    [
        'id' => 2,
        'filter' => 'color',
        'value' => 'red'
    ],
    [
        'id' => 3,
        'filter' => 'color',
        'value' => 'blue'
    ],
    [
        'id' => 3,
        'filter' => 'storage',
        'value' => '8GB'
    ]
]);

Мне нужно именно так:


[
    "brand" => ["apple"],
    "color" => ["red", "blue"],
    "storage" => ["8GB"]
]

Как мне отформатировать это как выше?

1 Ответ

0 голосов
/ 20 января 2019

Я нашел решение.

$grouped = $collection->mapToGroups(function ($item, $key) {
    return [$item['filter'] => $item['value']];
});

$grouped->toArray();

https://laracasts.com/discuss/channels/eloquent/need-help-with-formatting-laravel-collection#reply=486863

...