PHP: json_decode - чтение названий категорий

Я пытаюсь прочитать цены в формате JSON по адресу: https://poloniex.com/public?command=returnTicker

что мне нужно, это две вещи: имена символов (например, BTC_BBR, BTC_BCN и т. д.) и цена "наивысшей ставки" для них. Чтобы прочитать лестницу, я использую что-то вроде этого:

$polo_price = file_get_contents('https://poloniex.com/public?command=returnTicker');
$polo = json_decode($polo_price, true);
$symbol[1] =  $polo['BTC_BBR']['highestBid'];

Но мне нужно использовать имя символа, чтобы прочитать его. Символы исчезают и добавляются время от времени, поэтому мне нужно сделать это более автоматически. Как я могу прочитать имена символов в массив, так что результат:

symbol_name[0] = "BTC_BBR";
symbol_name[1] = "BTC_BCN";

и так далее.

2 ответа

Решение

Попробуй это:

<?php
$polo_price = file_get_contents('https://poloniex.com/public?command=returnTicker');
$polo = json_decode($polo_price, true);

foreach ($polo as $symbol=>$array){
    $symbols[]=$symbol;
    $highestBids[] = $array['highestBid'];
}

print_r($symbols);

print_r($highestBids);
<?php
function findHighestBid()
{
    $result = [];
    $url = "https://poloniex.com/public?command=returnTicker";
    $json_data = file_get_contents($url);
    $array_data = json_decode($json_data, true);
    foreach ($array_data as $currncy_option => $value) {
        $result[$currncy_option] = $value["highestBid"];
    }
    return $result;
}
print_r(findHighestBid());

Он автоматически получит самую высокую ставку для всех опций валюты в данных json, а также установит валюту в качестве ключа //output

Array
(
    [BTC_BBR] => 0.00026283
    [BTC_BCN] => 0.00000005
    [BTC_BELA] => 0.00002100
    [BTC_BITS] => 0.00000892
    [BTC_BLK] => 0.00003480
    [BTC_BTCD] => 0.00615298

Как это....

Другие вопросы по тегам