2016-04-12 8 views
1

Ich versuche ein PHP-Skript zu erstellen, das das Wetter von einer Yahoo API bekommt. Ich importierte erfolgreich unter Verwendung der Daten:(PHP) kann keine Informationen erhalten, von denen ich denke, dass ein mehrdimensionales Array von JSON empfangen wird

<?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); 

?> 

ich folgende aus $ Wetter bei der Verwendung von 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 
      ) 
    ) 

I [high] erhalten möge, [low] und [Text] von [ 0], aber ich kann nicht scheinen, sie ohne einen Fehler oder das Ergebnis leer zu sein. Ich habe nach ähnlichen Problemen auf Stackoverflow gesucht, aber keiner ist derselbe oder ich verstehe einfach nicht/kann nicht herausfinden, wie man die gegebene Antwort verwendet.

Ich hatte gehofft, jemand hier könnte mir helfen, weil ich viel zu viele Stunden damit verbracht habe, dies zu lösen.

Vielen Dank im Regard

Antwort

3

Sie die Elemente von Array-Index 0 wie folgt zugreifen können:

echo $weather[0]['high'];  //output: 62 
echo $weather[0]['low'];  //output: 48 
echo $weather[0]['text'];  //output: Rain