2017-04-24 61 views
0

如何使用foreach循環正確列出此JSON數組?使用file_get_contentsjson_decodevar_dump從這個API URL後:列出在foreach循環中使用float值的JSON數組數據

https://min-api.cryptocompare.com/data/pricemulti?fsyms=BTC,ETH,LTC,XRP,DASH,XMR,ZEC&tsyms=PHP 

這就是我得到:

foreach($json as $cc => $value) { 
    echo '<br/>'. $cc.' : '. $value; 
} 

我:

array(7) { 
    ["BTC"]=> array(1) { ["PHP"]=> float(62127.29) } 
    ["ETH"]=> array(1) { ["PHP"]=> float(2488.82) } 
    ["LTC"]=> array(1) { ["PHP"]=> float(746.77) } 
    ["XRP"]=> array(1) { ["PHP"]=> float(1.58) } 
    ["DASH"]=> array(1) { ["PHP"]=> float(3559.27) } 
    ["XMR"]=> array(1) { ["PHP"]=> float(999.01) } 
    ["ZEC"]=> array(1) { ["PHP"]=> float(3455.52) } 
} 

然後我用foreach循環中列出的數據得到這個:

BTC : Array 
ETH : Array 
LTC : Array 
XRP : Array 
DASH : Array 
XMR : Array 
ZEC : Array 

我該怎麼做才能顯示這樣的內容?

BTC : 62,127.29 
ETH : 2488.82 
LTC : 746.77 
XRP : 1.58 
DASH : 3559.27 
XMR : 999.01 
ZEC : 3455.52 
+0

在你的情況下,它是'echo'
'。 $ CC「。 :'。 $ value ['PHP'];' –

+0

使用'$ value ['PHP']' –

回答

1

在你的foreach的$值是一個數組,所以你必須使用PHP的索引來訪問它。

foreach($json as $cc => $value) { 
    echo '<br/>'. $cc.' : '. $value['PHP']; 
} 
0

你幾乎擁有了它,你只失蹤,你訪問$值數組的第一個值的部分。

foreach($json as $cc => $value) { 
    echo '<br/>'. $cc.' : '. $value[0]; 
} 
+0

謝謝!但$ value ['PHP']做了個竅門。 :D我忘了添加'PHP' – jehzlau

0
foreach($json as $cc => $value) { 
    echo '<br/>'. $cc.' : '. $value['PHP']; 
} 
0

Try this code snippet here

<?php 
$string='{"BTC":{"PHP":62127.29},"ETH":{"PHP":2486.33},"LTC":{"PHP":748.01},"XRP":{"PHP":1.58},"DASH":{"PHP":3560.51},"XMR":{"PHP":996.52},"ZEC":{"PHP":3448.69}}'; 

foreach(json_decode($string,true) as $cc => $value) 
{ 
    echo $cc.' : '. $value["PHP"].PHP_EOL; 
} 
+0

帶或不帶.PHP_EOL,結果仍然是一樣的。 :D謝謝Sahil! :)現在它工作。 :D – jehzlau

0

在你的JSON屬性,你有一個對象,而不是爲你的屬性例如浮點值:{"BTC":{"PHP":61127.29}},它應該是{"BTC":61127.29},因爲你有一個JSON對象的價值,你必須得到它$value->PHP您可以在其中定義存儲值的子對象的屬性。

+0

不,請檢查var_dump輸出。顯然它是用'json_decode($ data,true)'解碼的,所以這些值是數組,而不是對象。 –