You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 对含重复数据的集合按controlNumber分组汇总shipment.qty方法

实现代码(Laravel Collection 写法)

$result = $collection->groupBy('controlNumber')
    ->map(function ($group) {
        $baseRecord = $group->first();
        $baseRecord['shipment']['qty'] = $group->sum('shipment.qty');
        return $baseRecord;
    })
    ->values()
    ->toArray();

逻辑说明

  • 先用groupBy('controlNumber')将所有记录按controlNumber字段分组,相同controlNumber的记录会被归集到同一个分组
  • 遍历每个分组,取分组第一条记录作为输出的基础结构(匹配你示例中保留第一条id、其他属性不变的需求),再计算当前分组所有记录的shipment.qty总和,替换基础记录中的qty值
  • 最后用values()重置数组键为连续的数字索引,和你期望的输出结构完全对齐

可选调整

如果同分组内非qty字段存在不一致,可自行调整基础记录的取值规则,比如要取分组内id最大的记录作为基础,就把$group->first()改成$group->sortByDesc('id')->first()即可。

内容的提问来源于stack exchange,提问作者raza9798

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 04:15:01