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

PHP JSON数组遍历Bug排查请求:无法循环获取商品名称与价格

问题排查与修复

你这段代码的Bug很明确——你把关联数组当成对象来访问了!

看你调用json_decode($response, true)时传了第二个参数true,这会把JSON字符串解码成PHP关联数组,而不是对象实例。所以循环里用$product->name这种对象属性访问的写法肯定会报错,得改成数组下标访问的形式才行。

修复后的完整代码

$url = "myurl"; 
$response = file_get_contents($url); 
// 增加解码失败的判断,避免接口返回异常时出错
if (!$myArray = json_decode($response, true)) {
    die('JSON解码失败,请检查接口返回格式');
}
foreach ($myArray as $product) { 
    // 用数组下标访问商品名称和价格
    echo '商品名称:' . $product['name'] . ',价格:' . $product['price'] . '<br>'; 
}

补充两种可选写法

  • 如果想继续用对象属性的方式访问,可以去掉json_decode的第二个参数(或者设为false),这样解码结果会是stdClass对象:
    $myArray = json_decode($response); // 默认返回对象
    foreach ($myArray as $product) { 
        echo $product->name . ',价格:' . $product->price . '<br>'; 
    }
    
  • 也可以用foreach的键值对遍历形式,逻辑更清晰:
    foreach ($myArray as $key => $product) {
        echo "第".($key+1)."个商品:". $product['name'] . ",价格:" . $product['price'] . "<br>";
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:49:40