Доступ к первому элементу stdobject
Я использую API, где я получаю следующий ответ:
{"BTC_LTC":{"last":"0.0251","lowestAsk":"0.02589999","highestBid":"0.0251","percentChange":"0.02390438",
"baseVolume":"6.16485315","quoteVolume":"245.82513926"},"BTC_NXT":{"last":"0.00005730","lowestAsk":"0.00005710",
"highestBid":"0.00004903","percentChange":"0.16701570","baseVolume":"0.45347489","quoteVolume":"9094"}, ... }
Нет проблем с доступом к объекту, когда я знаю ключ как
$result = json_decode(file_get_contents($url));
$result->BTC_LTC->last
В моем случае я не знаю ключей XXX_XXX. Как я могу получить ключи? Я пробовал такие вещи, как $result-> {0}/$result-> [0]/$ result {0}/$ result [0] без успеха.
Как получить значения XXX_XXX (например, в примере выше BTC_LTC)?
Это должно сделать трюк:
<?php
$json = '{"BTC_LTC":{"last":"0.0251","lowestAsk":"0.02589999","highestBid":"0.0251","percentChange":"0.02390438",
"baseVolume":"6.16485315","quoteVolume":"245.82513926"},"BTC_NXT":{"last":"0.00005730","lowestAsk":"0.00005710",
"highestBid":"0.00004903","percentChange":"0.16701570","baseVolume":"0.45347489","quoteVolume":"9094"}}';
$result = json_decode($json);
$vars = get_object_vars($result);
$keys = array_keys($vars);
echo $vars[$keys[0]]->last;
?>
Вы можете попробовать код здесь
Используйте цикл foreach, который должен работать
foreach($result as $k=>$v)
{
.
.
.
}
Второй аргумент json_decode
позволяет указать, что вы хотите вернуть массив:
$result = json_decode(file_get_contents($url),true);
Теперь этот результат представляет собой массив, который вы можете использовать как обычно (looping, array_keys и т.д.).