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

PHP中无法遍历API返回的JSON数组数据,求解决方法

问题解决:关联数组遍历错误修复

你犯了一个典型的错误:用对象访问语法(->)去操作关联数组。因为你调用json_decode($resp, true)时传了第二个参数true,这个参数会让JSON字符串转换成关联数组,而不是PHP对象。

正确的处理方式

根据你描述的数组结构($decode包含error、result,result下有property子数组),直接用数组索引([])访问即可,不需要嵌套两层foreach:

$propertys = [];

// 先做存在性判断,避免Undefined index报错
if (isset($decode['result']['property']) && is_array($decode['result']['property'])) {
    foreach ($decode['result']['property'] as $data) {
        $property = [
            'id' => $data['PROPERTY_ID'],
            'sale' => $data['SALE_RENT']
        ];
        $propertys[] = $property;
    }
}

关键说明

  1. 当json_decode第二个参数为true时,所有层级的JSON结构都会转成关联数组,必须用$array['key']的方式访问,而不是$object->key。
  2. 增加isset()和is_array()判断是为了避免因API返回结构异常导致的报错,比如当result或property不存在时,代码不会直接崩溃。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 15:10:42