2014-10-03 2 views
1

Кажется, что это должно быть легко, но я, очевидно, просто что-то недопонимаю. Я делаю вызов API до 5 дней Погода на следующий код:Как вывести результат из этого var_dump()?

$file = file_get_contents("http://5DayWeather.org/api.php?city=Glasgow"); 
$weather = json_decode($file); 

Если я var_dump ($ погода) я получаю следующий результат:

object(stdClass)#1824 (2) { 
    ["apiVersion"]=> string(3) "1.0" 
    ["data"]=> object(stdClass)#1826 (7) { 
     ["location"]=> string(12) "Glasgow, GBR" 
     ["temperature"]=> string(2) "55" 
     ["skytext"]=> string(13) "Partly Cloudy" 
     ["humidity"]=> string(2) "88" 
     ["wind"]=> string(1) "8" 
     ["date"]=> string(10) "2014-10-03" 
     ["day"]=> string(6) "Friday" 
    } 
} 

Право, это все хорошо , но как я могу выделить отдельные результаты? Я чувствую, что я попробовал все и просто не могут получить что-либо на работу, в том числе (много для хорошей меры):

$weather->temperature; 
$weather['temperature']; 
$weather{'temperature'}; 

Я понимаю, что это мое фундаментальное непонимание того, как этот массив/объект вещь работает, но я Я попытался изучить его и не могу точно определить, что я должен делать с этим фидом.

Большое спасибо!

ответ

2

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

echo $weather->data->temperature; 
+0

совершенны, спасибо! –

+0

Также в будущем вы можете использовать 'print_r ($ weather)' для более дружественного представления объекта/массива, что сделает его более очевидным, как получить доступ к его дочерним узлам. – DannyB

+0

Вложенные данные были бы легче увидеть, возможно, вы вставили некоторые символы новой строки перед тем, как открывать фигурные скобки (или посмотрели оригинальный JSON после запуска через форматирование). –

Смежные вопросы