PHP遍历嵌套JSON结构提取所有amount_refunded字段值的方法
PHP提取嵌套JSON中amount_refunded字段实现方案
前提:你已经完成接口请求、JSON解码并通过->items拿到商品条目集合,以下分不同场景给出实现逻辑:
场景1:json_decode返回对象数组(默认用法,未传第二个参数)
// 初始化存储退款金额的数组 $refundedAmounts = []; // 遍历items集合 foreach ($response->items as $item) { // 先判断字段是否存在,避免报错 if (isset($item->amount_refunded)) { $refundedAmounts[] = $item->amount_refunded; } } // 若需要计算总退款金额,直接累加即可 $totalRefunded = array_sum($refundedAmounts);
遍历每个商品条目,判断字段存在后存入结果数组,最终$refundedAmounts就是所有amount_refunded的集合。
场景2:json_decode返回关联数组(传入第二个参数为true)
如果你解码时用了json_decode($apiContent, true),可以用更简洁的array_column方法直接提取:
$items = $response['items']; // 直接提取所有amount_refunded字段,一行完成 $refundedAmounts = array_column($items, 'amount_refunded'); // 计算总退款同理 $totalRefunded = array_sum($refundedAmounts);
如果items的子元素还有更深层级嵌套,比如amount_refunded存在于每个item的refund_info子对象中,只需要调整取值逻辑即可:对象格式下改为$item->refund_info->amount_refunded,关联数组格式改为$item['refund_info']['amount_refunded']。
内容的提问来源于stack exchange,提问作者dinkelberg
相关产品推荐
相关产品推荐

