2014-03-12 27 views
0

我使用下面的代码获取了JSON数据。以PHP格式获取数组数据

$json = file_get_contents('http://api.openweathermap.org/data/2.5/weather?lat=35&lon=139'); 
$data = json_decode($json,true); 

print_r($data); 
foreach($data as $key => $datas){ 
$datas[$key]; 
    } 

这是解码JSON

Array(
[coord] => Array 
    (
     [lon] => 139 
     [lat] => 35 
    ) 

[sys] => Array 
    (
     [message] => 0.0053 
     [country] => JP 
     [sunrise] => 1394571511 
     [sunset] => 1394614136 
    ) 

[weather] => Array 
    (
     [0] => Array 
      (
       [id] => 802 
       [main] => Clouds 
       [description] => scattered clouds 
       [icon] => 03d 
      ) 

    ) 

[base] => cmc stations 
[main] => Array 
    (
     [temp] => 289.82 
     [pressure] => 1013 
     [temp_min] => 289.82 
     [temp_max] => 289.82 
     [humidity] => 30 
    ) 

[wind] => Array 
    (
     [speed] => 3.08 
     [gust] => 8.74 
     [deg] => 230 
    ) 

[clouds] => Array 
    (
     [all] => 48 
    ) 

[dt] => 1394611401 
[id] => 1851632 
[name] => Shuzenji 
[cod] => 200 
) 

然后我试图显示使用foreach方法的数据,但我无法得到它的权利。

是否有人可以帮我这个.......

+0

请给我们更多的信息。你期望什么,发生了什么? –

+0

请提供您的'foreach'代码。 –

+0

'$ json'显示什么? –

回答

2

您可以轻松地使用下面的示例来阅读你的PHP数组:

echo $data['coord']['lon']; 
echo $data['coord']['lat']; 
echo $data['sys']['message']; 
echo $data['sys']['country']; 
echo $data['sys']['sunrise']; 
echo $data['sys']['sunset']; 
.... And so on 

目前收到:

Array 
(
    [coord] => Array 
     (
      [lon] => 139 
      [lat] => 35 
     ) 
[sys] => Array 
    (
     [message] => 0.0422 
     [country] => JP 
     [sunrise] => 1394571511 
     [sunset] => 1394614136 
    ) 

[weather] => Array 
    (
     [0] => Array 
      (
       [id] => 802 
       [main] => Clouds 
       [description] => scattered clouds 
       [icon] => 03d 
      ) 

    ) 

[base] => cmc stations 
[main] => Array 
    (
     [temp] => 289.26 
     [pressure] => 1013 
     [temp_min] => 289.26 
     [temp_max] => 289.26 
     [humidity] => 30 
    ) 

[wind] => Array 
    (
     [speed] => 3.08 
     [gust] => 8.74 
     [deg] => 252 
    ) 

[clouds] => Array 
    (
     [all] => 48 
    ) 

[dt] => 1394612300 
[id] => 1851632 
[name] => Shuzenji 
[cod] => 200 

+0

感谢您的帮助它的工作.... – winnyboy5

0
  • $数据由arrary的数组中。
  • 所以你需要正确解析它。
  • 使用嵌套的Foreach。
1

如果你真的想显示的所有键/值,请尝试:

$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($data)); 
foreach($iterator as $key => $value) { 
    echo "$key => $value<br>"; 
} 
+0

感谢它的工作...... – winnyboy5

+1

它总是值得看看[PHP的SPL(http://de3.php.net/spl)。 – bitWorking