【发布时间】:2019-03-29 13:07:20
【问题描述】:
这里是 PHP 初学者。 我想显示来自 JSON API 的比较数据 ($myCoins),以便只显示我第一次插入 $myCoins 数组的那些项目,但我不知道如何让代码进行相同的操作NAMES 而不是 NUMBERS。
使用的 API:
https://min-api.cryptocompare.com/data/pricemultifull?fsyms=BTC,ETH,XRB,MIOTA,XRP,XLM,TRX&tsyms=USD
代码:
<?php
//// API
$coinData = json_decode(file_get_contents('https://min-api.cryptocompare.com/data/pricemultifull?fsyms=BTC,ETH,XRB,IOTA,XRP,XLM,TRX,LINK&tsyms=USD'), true);
// Arrays
$myCoins = array(
'BTC' => array ( 'balance' => 12.90 ),
'ETH' => array ( 'balance' => 122.23 ),
'XRB' => array ( 'balance' => 221.52 ),
'MIOTA' => array ('balance' => 233.00 ),
'XRP' => array ( 'balance' => 429.00 ),
'XLM' => array ( 'balance' => 1205.89 ),
'TRX' => array ( 'balance' => 5299.40 )
);
// Fetch the Coins
$numCoins = sizeof ($coinData['RAW']);
$portfolioValue = 0;
for ( $xx=0; $xx<$numCoins; $xx++) {
// Comparing to Data
$thisCoinSymbol = $coinData[$xx]['FROMSYMBOL'];
//
$coinHeld = array_key_exists($thisCoinSymbol, $myCoins);
// Only retour held
if ( !$coinHeld ) { continue; }
// names test:
echo $coinData[$xx]['FROMSYMBOL'];
};
?>
我使用的教程是使用将项目显示为数字的 API 制作的,而不是像我想使用的 API 中那样显示项目名称。
教程 API:
https://api.coinmarketcap.com/v1/ticker/
所以我的控制台在$thisCoinSymbol = $coinData[$xx]['FROMSYMBOL'] 上输出了一个Undefined offset: 0 - Undefined offset: 7;我理解这是因为$xx等于0-7,因为['RAW']下有8个Item,而我使用的API中没有0-7。
如果使用我想使用的 API,我如何获得与教程相同的结果?
【问题讨论】:
-
如果您能向我们展示 JSON 数据,将会很有帮助