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

PHP数组去重合并并累加同规格商品购买数量实现方案

PHP实现电商订单SKU维度去重与采购量汇总方案

核心逻辑

  • 遍历所有订单下的item_list商品节点
  • 以商品唯一标识model_sku作为分组键做去重判定
  • 首次匹配到某SKU时,保留商品名称、单价等固定属性,初始化采购量统计字段
  • 重复匹配到相同SKU时,直接累加model_quantity_purchased数值,不新增重复条目
  • 遍历结束后重置数组索引,输出的结果可直接用于拣货单渲染

可直接复用的代码

<?php
// 此处替换为你从电商API获取的原始JSON返回值
$rawApiResponse = '你的订单API原始JSON字符串';
// 解码为关联数组,注意json_decode第二个参数固定传true
$orderList = json_decode($rawApiResponse, true);

$pickSummary = [];
foreach ($orderList as $order) {
    // 过滤无商品条目的异常订单
    if (empty($order['item_list']) || !is_array($order['item_list'])) {
        continue;
    }
    foreach ($order['item_list'] as $item) {
        $sku = $item['model_sku'];
        // 首次遇到该SKU时初始化汇总条目
        if (!isset($pickSummary[$sku])) {
            $pickSummary[$sku] = [
                'model_sku' => $item['model_sku'],
                'model_name' => $item['model_name'],
                'spec' => $item['spec'] ?? '', // 可根据自身业务字段增减保留的属性
                'unit_price' => $item['model_price'],
                'total_quantity' => 0
            ];
        }
        // 累加采购量
        $pickSummary[$sku]['total_quantity'] += intval($item['model_quantity_purchased']);
    }
}
// 转为索引数组,输出拣货单所需的标准结构
$pickList = array_values($pickSummary);

结果验证

以常规测试订单数据为例,最终输出的汇总结构如下:

Array
(
    [0] => Array
        (
            [model_sku] => SKU001
            [model_name] => 纯棉圆领T恤
            [spec] => 白色M码
            [unit_price] => 99
            [total_quantity] => 5
        )
    [1] => Array
        (
            [model_sku] => SKU002
            [model_name] => 纯棉圆领T恤
            [spec] => 黑色L码
            [unit_price] => 99
            [total_quantity] => 1
        )
    [2] => Array
        (
            [model_sku] => SKU003
            [model_name] => 水洗牛仔短裤
            [spec] => 蓝色30码
            [unit_price] => 159
            [total_quantity] => 2
        )
)

适配提示

  • 如果业务需要按仓库、配送路线等维度拆分拣货单,只需要给$pickSummary增加一层分组维度键即可,核心累加逻辑不变
  • 若存在同SKU对应不同商品属性的脏数据,可以在累加前增加属性一致性校验,避免拣货信息错误
  • 该方案时间复杂度为O(n),单批次处理10万级订单条目也不会出现性能瓶颈

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 09:54:22