Foreach从API循环遍历JSON数组

时间:2018-01-21 15:08:12

标签: php arrays json api

我正在使用IEX API创建一个股票市场投资组合网站,但是当涉及将数据作为数组检索然后将值存储在表中时,我目前只停留在一个部分。

以下是代码:

$div = file_get_contents("https://api.iextrading.com/1.0/stock/market/batch?symbols=F,AAPL&types=stats&filter=dividendRate");  
$div = json_decode($div,TRUE);  

foreach($div as $divi => $value)
echo '<br/>'. $divi.' : '. $value;

var_dump($div);

我现在得到的是:

  

注意:数组转换为字符串   第34行的E:\ XAMPP \ htdocs \ website2 \ test.php

F:数组

  

注意:数组转换为字符串   第34行的E:\ XAMPP \ htdocs \ website2 \ test.php

AAPL:数组

从var_dump中,我得到了这个:

  

array(2){[“F”] =&gt; array(1){[“stats”] =&gt; array(1){   [ “dividendRate”] =&GT; float(0.13)}} [“AAPL”] =&gt; array(1){[“stats”] =&gt;   array(1){[“dividendRate”] =&gt; float(2.52)}}}

基本上,我希望在表格中显示红利数量而不是单词'array',符号旁边 - 我在这里缺少什么? 谢谢!

2 个答案:

答案 0 :(得分:1)

您需要进一步引用正确的数组元素以在循环中获取此值...

foreach($div as $divi => $value) {
    echo '<br/>'. $divi.' : '. $value['stats']['dividendRate'];
}

答案 1 :(得分:1)

从var_dump可以看出,这个数据是一个数组数组。当您尝试回显数组时,它只会输出字符串'Array'。指定该数组元素的键以获取实际数据。

foreach($div as $divi => $value) {
    echo $divi . ':' . $value['stats']['dividendRate'];
}

这是格式化的数据。

array(2) {
    ["F"]=> array(1) { 
        ["stats"]=> array(1) {
            ["dividendRate"]=> float(0.13) 
        }
    } 
    ["AAPL"]=> array(1) { 
        ["stats"]=> array(1) { 
            ["dividendRate"]=> float(2.52) 
        } 
    } 
}