2013-11-21 167 views
0

我有一小段代码正在尝试写入。我试图从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; 
+2

'$ data-> routes [0] - > legs [0] - > distance-> text;'适合我 – peaceman

回答

0

是的,你通过所有的数组必须循环。

$data->routes 

是一个数组

$data->routes[0]->legs 

也是一个数组

所以,你需要提取要返回什么。