我使用它从JSON:中的url检索数据
$apiUrl = "https://api.uphold.com/v0/ticker/UPXAU";
$upxau_rates = file_get_contents($apiUrl);
if($upxau_rates !== false){
$upxau_rates_res = json_decode($upxau_rates);
}
foreach($upxau_rates_res as $upxau_rates_item)
{
if($upxau_rates_item->pair == "UPXAU-USD")
{
$usd_rate = $upxau_rates_item->ask;
}
}
来自api的JSON具有以下结构:
[{
"ask": "0.27226",
"bid": "0.27226",
"currency": "USD",
"pair": "AEDUSD"
},
{
"ask": "0.02675",
"bid": "0.02675",
"currency": "USD",
"pair": "ARSUSD"
},
{
"ask": "0.72624",
"bid": "0.72624",
"currency": "USD",
"pair": "AUDUSD"
},
...
所以,这很好用。但我想获得关于"要价"的信息,而不需要"foreach"one_answers"if"。例如:
$apiUrl = "https://api.uphold.com/v0/ticker/UPXAU";
$upxau_rates = file_get_contents($apiUrl);
if($upxau_rates !== false){
$upxau_rates_res = json_decode($main_currency);
}
echo $upxau_rates_res['pair']['UPXAU-USD']['ask'];
但这条捷径行不通。我怎么能在这么短的时间内获得信息?
解码为一个数组,然后在pair
上进行索引以访问它。索引所有并访问ask
:
$array = json_decode($json, true);
echo array_column($array, null, 'pair')['AEDUSD']['ask'];
或者只在pair
:上索引ask
echo array_column($array, 'ask', 'pair')['AEDUSD'];
能够使用所有这些:
$array = array_column($array, null, 'pair');
echo $array['AEDUSD']['ask'];