Я пытаюсь создать сценарий PHP, который получает погоду от Yahoo API. Я успешно импортировал данные, используя:
<?php
$BASE_URL = "http://query.yahooapis.com/v1/public/yql";
$yql_query = 'select * from weather.forecast where woeid in (select woeid from geo.places(1) where text="Amsterdam")';
$yql_query_url = $BASE_URL . "?q=" . urlencode($yql_query) . "&format=json";
// Make call with cURL
$session = curl_init($yql_query_url);
curl_setopt($session, CURLOPT_RETURNTRANSFER,true);
$json = curl_exec($session);
// Convert JSON to PHP object
$phpObj = json_decode($json);
echo '<pre>';print_r($phpObj).'<pre>';
$weather = json_decode(json_encode($phpObj->query->results->channel->item->forecast), True);
?>
Я получаю следующее из $ weather при использовании print_r:
Array
([0] => Array
(
[code] => 12
[date] => 12 Apr 2016
[day] => Tue
[high] => 62
[low] => 48
[text] => Rain
)
[1] => Array
(
[code] => 28
[date] => 13 Apr 2016
[day] => Wed
[high] => 60
[low] => 46
[text] => Mostly Cloudy
)
[2] => Array
(
[code] => 28
[date] => 14 Apr 2016
[day] => Thu
[high] => 61
[low] => 43
[text] => Mostly Cloudy
)
[3] => Array
(
[code] => 47
[date] => 15 Apr 2016
[day] => Fri
[high] => 57
[low] => 48
[text] => Scattered Thunderstorms
)
)
Я хочу получить [high], [low] и [text] из [0], но я не могу вывести их, не вызывая ошибки или результат будет пустым. Я искал похожие проблемы в Stackoverflow, но все они не совпадают, или я просто не понимаю / не могу понять, как использовать данный ответ.
Я надеялся, что кто-то здесь сможет мне помочь, потому что я потратил слишком много часов, пытаясь решить эту проблему.
Спасибо в уважении
Вы можете получить доступ к элементам из индекса массива 0 следующим образом:
echo $weather[0]['high']; //output: 62
echo $weather[0]['low']; //output: 48
echo $weather[0]['text']; //output: Rain
Других решений пока нет …