[英]Group Laravel Collection By Children
我想知道是否可以使用 laravel collections 对具有相同孩子的项目进行分组。 如果您查看下面的示例,我想将 id 为 1 和 4 以及 2 和 3 的订单组合在一起。 id 为 5 的订单将在其自己的组中。 这有意义吗?
$orders = collect([
[
'id' => 1,
'items' => [
['id' => 1, 'name' => 'Product A'],
['id' => 2, 'name' => 'Product B']
]
],
[
'id' => 2,
'items' => [
['id' => 3, 'name' => 'Product C'],
['id' => 4, 'name' => 'Product D']
]
],
[
'id' => 3,
'items' => [
['id' => 3, 'name' => 'Product C'],
['id' => 4, 'name' => 'Product D']
]
],
[
'id' => 4,
'items' => [
['id' => 1, 'name' => 'Product A'],
['id' => 2, 'name' => 'Product B']
]
],
[
'id' => 5,
'items' => [
['id' => 1, 'name' => 'Product A'],
['id' => 2, 'name' => 'Product B'],
['id' => 3, 'name' => 'Product C']
]
]
]);
好的,我想通了——这应该可以工作,尽管我需要确保每个项目数组都是按 id 排序的。
$orders->groupBy(function ($order) {
return implode('', array_column($order['items'], 'id'));
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.