Я использую 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)?
3 ответа
Это должно помочь:
<?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);
Теперь, когда результатом является массив, вы можете использовать его как обычно (цикл, array_keys и т. Д.).
Похожие вопросы
Новые вопросы
php
PHP — это широко используемый язык сценариев общего назначения с открытым исходным кодом, мультипарадигмальный, динамически типизированный и интерпретируемый, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.