【问题标题】:Iterate through JSON object not working in PHP遍历 JSON 对象在 PHP 中不起作用
【发布时间】:2017-06-08 09:14:38
【问题描述】:

我正在尝试从 url 加载数据。

数据如下

{
    "UFs": 
    [
        {
            "Valor" : "26.348,83",
            "Fecha" : "2017-01-01"
        },
        {
            "Valor" : "26.349,68",
            "fecha" : "2017-01-02"
        }
    ]
}

到目前为止,我的 PHP 代码如下所示:

ini_set("allow_url_fopen", 1);

$url = 'http://api.sbif.cl/api-sbifv3/recursos_api/uf/2017?apikey=472d79589e5bda11f1f032e62047911541c8a937&formato=json';
$obj = json_decode(file_get_contents($url), true);

foreach($obj as $item) {
    echo $item['Valor'] . "<br/>";
}

问题是我每次尝试都会出现空白屏幕。我还尝试使用 curl 读取如下网址:

$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, 'http://api.sbif.cl/api-sbifv3/recursos_api/uf/2017?apikey=472d79589e5bda11f1f032e62047911541c8a937&formato=json');
$result = curl_exec($ch);
curl_close($ch);

$obj = json_decode($result);

foreach($obj as $item) {
    echo $item['Valor']."<br/>";
}

但它也不起作用。我想问题出在我的每个循环上,或者我试图读取数组的方式上。

【问题讨论】:

  • 你能在你的循环之前做一个 var_dump($obj) 并发布结果吗?
  • 还将这两行添加到脚本的开头;错误报告(E_ALL); ini_set('display_errors', 1);

标签: php arrays json foreach


【解决方案1】:

值在UFs 对象内。以这种方式使用foreach 循环:

foreach($obj['UFs'] as $item) {
    echo $item['Valor'] . "<br/>";
}

【讨论】:

  • @BryanGabrielMacuer 请检查您的错误报告设置,这样您就不必在论坛上询问 PHP 已经可以告诉您什么 ;-)
  • @ÁlvaroGonzález 错误报告已开启,代码没有任何错误。我以错误的方式访问变量。
  • @BryanGabrielMacuer “500 Internal Server Error”(或空白页)表示您的脚本正在抛出错误,但 PHP 已配置为对您隐藏它。
猜你喜欢
  • 1970-01-01
  • 2017-02-03
  • 1970-01-01
  • 2015-01-11
相关资源
最近更新 更多