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

如何将PHP多维数组中同item_id的qty汇总至新数组?

解决PHP多维数组按item_id汇总qty的问题

没问题,这是个很常见的数组聚合需求,我来帮你实现按item_id汇总qty的功能。

首先先把你的原始数组整理成规范的PHP代码格式(方便后续测试):

$originalArray = [
    'a' => [
        'item' => ['item_id' => 1],
        'qty' => 0
    ],
    'b' => [
        'item' => ['item_id' => 2],
        'qty' => 35
    ],
    'c' => [
        'item' => ['item_id' => 2],
        'qty' => 15
    ],
    // 你提到的其他元素可以继续补充在这里
];

接下来是核心的汇总代码,逻辑非常清晰:

// 初始化空数组存储汇总结果
$summedArray = [];

// 遍历原始数组的每一个元素
foreach ($originalArray as $element) {
    // 提取当前元素的item_id和qty
    $itemId = $element['item']['item_id'];
    $currentQty = $element['qty'];
    
    // 判断该item_id是否已经在汇总数组中存在
    if (isset($summedArray[$itemId])) {
        // 已存在则累加qty
        $summedArray[$itemId]['qty'] += $currentQty;
    } else {
        // 不存在则初始化一条新记录
        $summedArray[$itemId] = [
            'item' => ['item_id' => $itemId],
            'qty' => $currentQty
        ];
    }
}

// 可选:如果需要将结果转换为数字索引数组(去掉item_id作为键)
$summedArray = array_values($summedArray);

代码说明

  • 先用foreach遍历原始数组的每个元素,提取关键的item_id和qty值。
  • 借助item_id作为临时键,判断汇总数组中是否已有该条目:有则累加数量,无则新建条目。
  • 最后用array_values()可以把以item_id为键的数组转换成普通的数字索引数组,方便后续业务使用。

示例输出

针对你给出的原始数组片段,处理后的$summedArray会是这样:

[
    ['item' => ['item_id' => 1], 'qty' => 0],
    ['item' => ['item_id' => 2], 'qty' => 50]
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:49:06