繁体   English   中英

Group Laravel 儿童系列

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM