从json中提取数据

时间:2013-11-21 00:39:25

标签: php json

我正在尝试编写一小段代码。我试图从json数组中提取数据,并且我对这个特定的编码知之甚少。任何方向或帮助将不胜感激。感谢

最后一行显示在浏览器中加载时返回正确的路由列表而没有错误的链接。

   <?php
   function getroute($slat,$slong,$elat,$elong)
   {
   $url = 'http://maps.googleapis.com/maps/api/directions/json?               origin='.trim($slat).','.trim($slong).'&destination='.trim($elat).','.trim($elong).'&sensor=false&mode=driving';
   $json = @file_get_contents($url);
   $data=json_decode($json);
   $status = $data->status;
   if($status=="OK")
   return $data->routes->legs->distance->text;
   else
   return false;
   }


   //start
   $slat = '36.019432';
   $slong = '-84.227957';

   //end
   $elat = '36.0350416';
   $elong = '-84.0199746';


   $address = getroute($slat,$slong,$elat,$elong);
   if($address) {echo $address;} else {echo "Not found";}

   echo "
   <br>
   sLat: $slat<br>
   sLong: $slong<br>
   eLat: $elat<br>
   eLong: $elong<br>";

   echo 'http://maps.googleapis.com/maps/api/directions/json?       origin='.trim($slat).','.trim($slong).'&destination='.trim($elat).','.trim($elong).'&sensor=false&mode=driving';
   ?>

我也尝试过:

return $data->routes[0]->legs[0]->distance->text;

return $data->routes[0]->legs[0]->distance[0]->text;

1 个答案:

答案 0 :(得分:0)

是的,你必须遍历所有数组。

$data->routes

是一个数组

$data->routes[0]->legs

也是一个数组

因此,您需要提取您想要返回的内容。