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

如何遍历嵌套数组?PHP中访问JSON嵌套数组内ProductResults的实现问题

解决JSON数组访问与格式化输出问题

看起来你卡在了多层嵌套数组的遍历上,咱们一步步来理清楚问题并修正代码:

问题根源

你的PHP代码里忽略了两个关键的数组层级:

  1. FinanceProductResults 是数组类型(不是单个对象),所以直接取 $data['Term'] 会触发错误,因为你不能直接从数组里拿关联键值;
  2. 你还没深入到 ProductResults 这一层,而这正是你要提取Type和Payment的地方。

修正后的PHP代码

$json = json_decode($resp, true);
// 遍历车辆结果(即使只有1条数据,保持代码通用性)
foreach ($json['VehicleResults'] as $vehicle) {
    // 遍历每个金融方案组(对应不同Term的方案)
    foreach ($vehicle['FinanceProductResults'] as $financePlan) {
        $currentTerm = $financePlan['Term'];
        // 遍历当前Term下的所有产品类型(HP/PCP)
        foreach ($financePlan['ProductResults'] as $product) {
            $productType = $product['Key'];
            $paymentAmount = $product['Payment'];
            // 按你需要的格式输出
            echo "Term: {$currentTerm}, Type:{$productType}, Payment: {$paymentAmount} ";
        }
    }
}

代码逻辑说明

  • 第一层循环:处理VehicleResults数组里的车辆条目(你的JSON里只有1条,但代码兼容多条的情况);
  • 第二层循环:针对每个车辆的FinanceProductResults,拿到对应的Term值;
  • 第三层循环:遍历该Term下的ProductResults,提取产品类型(Key)和月供(Payment),然后拼接成你要的格式输出。

实际输出结果

运行这段代码后,会得到:

Term: 47, Type:HP, Payment: 229.4 Term: 47, Type:PCP, Payment: 172.23 Term: 60, Type:HP, Payment: 186.82 

(注:你期望的输出里Term60的Type是PCP,但你的JSON数据里该Term下只有HP类型,所以实际输出是HP,这是数据本身的差异)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 14:52:40