Как я могу отформатировать следующую коллекцию Laravel
Заранее спасибо! У меня есть следующая коллекция в 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 ответ
Решение
Я нашел решение.
$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