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

使用PHP提取多层嵌套JSON的file_code值,循环报错如何解决

问题解决方法

报错原因

  1. json_decode() 第二个参数默认值为false,解析JSON后返回的是对象类型,而非关联数组,你用数组方括号[]访问对象属性会得到NULL,不是foreach支持的可遍历结构,因此抛出警告。
  2. 原代码循环逻辑有误:不需要遍历整个result字段,直接取result下的files数组遍历即可,否则遍历到result内的total_pages、results_total等非数组字段时,第二层foreach依然会报错。

两种可行实现方案

方案1:沿用对象语法访问

和你测试成功的单条取值语法保持一致,直接遍历files对象数组:

$json = json_decode($data);
foreach ($json->result->files as $file) {
    echo $file->file_code . PHP_EOL;
}

方案2:转为关联数组操作

如果更习惯用数组语法处理,给json_decode()第二个参数传true,即可返回关联数组格式的解析结果:

// 第二个参数设为true,解析为关联数组
$json = json_decode($data, true);
foreach ($json['result']['files'] as $file) {
    echo $file['file_code'] . PHP_EOL;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 19:06:04