如何从动态多级订单嵌套数组中提取所有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
相关产品推荐
相关产品推荐

