迭代通过JSON对象无法在PHP中工作

时间:2017-01-23 18:49:10

标签: php arrays json foreach

我试图从网址加载数据。

数据如下:

{
    "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来读取URL如下:

$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/>";
}

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

1 个答案:

答案 0 :(得分:1)

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

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