У меня есть пример таблицы, подобной следующей:
| id | is_new | cate |
| 0 | 1 | [5] |
| 1 | 1 | [5] |
| 2 | 1 | [7] |
| 3 | 1 | [6] |
После вызова следующей функции
$product = Products::where('is_new', 1)->get();
коллекция имеет следующую структуру данных
Collection {#1284 ▼
#items: array:4 [▼
0 => Products {#1285 ▶}
1 => Products {#1286 ▶}
2 => Products {#1287 ▶}
3 => Products {#1288 ▶}
]
}
Я также могу вернуть список идентификаторов категорий через:
$category = Category::where('type', 2)->pluck('id')->all();
Интересно, есть ли какой-нибудь хороший способ достижения следующей структуры (или аналогичной) на основе cate? Я могу использовать метод грубой силы, чтобы создать его, циклически перебирая категорию $, затем добавляя в новую коллекцию вручную, я думаю, что есть лучший способ сделать это.
Collection {#1284 ▼
#items: array:3 [▼
5 => array:2 [▼
0 => Products {#1285 ▶}
1 => Products {#1286 ▶}
]
6 => Products {#1287 ▶} or 6 => array:1 [ 0 => Products {#1287 ▶} ]
7 => Products {#1288 ▶}
]
}
Обновление решения на основе ответа:
$product->groupBy(function($item) {
return $item['cate'][0]; //because the entry is a list
});