Доступ JSON индекс массива в PHP - PullRequest
1 голос
/ 10 июля 2020

Это мой код:

$url2 = 'https://api.exchangeratesapi.io/latest?symbols=USD,GBP,AUD';
  

$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $url2);
$result = curl_exec($ch);
curl_close($ch);
$jsonrates = json_decode($result, true);

$usd_rate = $jsonrates['USD'];
$gbp_rate = $jsonrates['GBP'];
$aud_rate = $jsonrates['AUD'];

print_r($jsonrates) возвращает действительный массив JSON:

Array ( [rates] => Array ( [AUD] => 1.6239 [USD] => 1.1342 [GBP] => 0.89655 ) [base] => EUR [date] => 2020-07-09 )

Но если я попытаюсь получить к нему доступ используя индекс, например echo $usd_rate; или echo $jsonrates['USD'], он возвращает Notice: Undefined index: USD

1 Ответ

0 голосов
/ 10 июля 2020

Как указал @msbit, «USD» находится во вложенном массиве, поэтому вам сначала нужно получить доступ к этому массиву «ставок»:

$url2 = 'https://api.exchangeratesapi.io/latest?symbols=USD,GBP,AUD';
  

$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $url2);
$result = curl_exec($ch);
curl_close($ch);
$jsonrates = json_decode($result, true);

$usd_rate = $jsonrates['rates']['USD'];
$gbp_rate = $jsonrates['rates']['GBP'];
$aud_rate = $jsonrates['rates']['AUD'];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...