При переборе объекта stdClass в PHP мне не удается получить одну переменную (дату) - PullRequest
0 голосов
/ 22 марта 2020

Аналогично этому сообщению: итерация по объекту stdClass в PHP

Но мне нужно просто получить дату [2020-03-20], [2020-02- 28] переменная этого объекта stdClass:

stdClass Object
(
    [2020-03-20] => stdClass Object // <- this is what I need
        (
            [1. open] => 711.2600
            [2. high] => 806.9800
            [3. low] => 350.5100
            [4. close] => 427.5300
            [5. volume] => 298764633
        )

    [2020-02-28] => stdClass Object // <- this is what I need
        (
            [1. open] => 673.6900
            [2. high] => 968.9899
            [3. low] => 611.5200
            [4. close] => 667.9900
            [5. volume] => 473506012
        ) ...

Итак, пока я могу получить переменные $ open, $ high, ..., но не переменную даты.

$API_KEY = "demo";
$symbol = "TSLA";
$company= "Tesla";
$startDate = "2020-03-01";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,("https://www.alphavantage.co/query?function=TIME_SERIES_MONTHLY&symbol=".$symbol."&apikey=".$API_KEY)); // daily adjusted close
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec ($ch);
curl_close ($ch);
$result = json_decode($server_output);
    $Array = $result->{'Monthly Time Series'};
    foreach($Array as $obj){
    // THIS IS WHAT I NEED => echo '$date: '.$date.': <BR>'; // THIS DOESN'T WORK, $date is not defined.
$open=$obj->{'1. open'};
    $high=$obj->{'2. high'};
    $low=$obj->{'3. low'};
    $close=$obj->{'4. close'};
    $volume=$obj->{'5. volume'};

Спасибо

1 Ответ

0 голосов
/ 22 марта 2020

Это было очень просто, я не могу поверить, что я не думал об этом раньше, я просто изменил массив с: foreach ($ dataForAllDays as $ obj) {

на

foreach ($ dataForAllDays как $ date => $ obj) {

, а $ date ($ key) - это переменная даты, которую я хотел.

...