php json not showing Wunderground station list

189 Views Asked by At

I'm trying to show a list of all nearby weather stations. I have the code:

$json_string = file_get_contents("http://api.wunderground.com/api/8b19ccf6a06c0826/geolookup/conditions/q/Netherlands/Rotterdam.json");

$parsed_json = json_decode($json_string);
$stations = $parsed_json->{'location'}->{'nearby_weather_stations'}->{'pws'}->{'station'};
$count = count($stations);
for($i = 0; $i < $count; $i++)
{
   $station = $stations[$i];
   if (count($station) > 1)
   {
    echo "City: " . $station->{'city'} . "\n";
    echo "State: " . $station->{'state'} . "\n";
    echo "Latitude: " . $station->{'lat'} . "\n";
    echo "Longitude: " . $station->{'lon'} . "\n";
   }
}

But currently it's not showing anything, i have searched for examples but i couldn't find any solution fot this problem.

1

There are 1 best solutions below

0
On BEST ANSWER

Alternatively, you could use a simple foreach to iterate those values. Consider this example:

$json_string = file_get_contents("http://api.wunderground.com/api/8b19ccf6a06c0826/geolookup/conditions/q/Netherlands/Rotterdam.json");
$parsed_json = json_decode($json_string, true); // <-- second parameter to TRUE to use it as an array
$desired_values = $parsed_json['location']['nearby_weather_stations']['pws']['station'];
foreach($desired_values as $key => $value) {
    echo "<hr/>";
    echo "City: " . $value['city'] . "<br/>";
    echo "State: " . $value['state'] . "<br/>";
    echo "Latitude: " . $value['lat'] . "<br/>";
    echo "Longitude: " . $value['lon'] . "<br/>";
    echo "<hr/>";
}

Sample Fiddle