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

如何从动态多级订单嵌套数组中提取所有quantity值到一维数组?

解决方案

方法一:foreach循环(直观易维护)

这是最直接的实现方式,逐层遍历数组收集目标值:

$quantities = [];
// 遍历每一笔订单
foreach ($result_3['orders'] as $order) {
    // 遍历当前订单下的所有商品项
    foreach ($order['line_items'] as $item) {
        $quantities[] = $item['quantity'];
    }
}

方法二:结合array_reduce与array_column(函数式写法)

用array_reduce遍历订单数组,每次合并当前订单的所有quantity值到结果中:

$quantities = array_reduce(
    $result_3['orders'],
    function ($carry, $order) {
        // 提取当前订单的所有quantity,合并到结果数组
        return array_merge($carry, array_column($order['line_items'], 'quantity'));
    },
    [] // 初始化空数组作为结果起点
);

原代码失效原因

你原代码里的第二层array_column(..., '0')是强制提取每个line_items数组的第0个元素,因此只能拿到每个订单的第一个商品的quantity。去掉这一层限制,改用遍历或数组合并的方式处理所有line_items数组,就能获取全部quantity值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 07:55:28