2014-09-26 235 views
1

当转换为PHP数组(不是stdClass对象)时,如何才能访问几何位置到lat和long?我试过$ data ['results'] ['geometry'] ['location'] ['lat']和['lng']但它没有奏效。访问PHP数组中的键值对

我是越来越未定义,偏移量和不能使用字符串作为阵列偏移等

{ 
    "results" : [ 
     { 
     "address_components" : [ 
      { 
       "long_name" : "1600", 
       "short_name" : "1600", 
       "types" : [ "street_number" ] 
      }, 
      { 
       "long_name" : "Amphitheatre Parkway", 
       "short_name" : "Amphitheatre Pkwy", 
       "types" : [ "route" ] 
      }, 
      { 
       "long_name" : "Mountain View", 
       "short_name" : "Mountain View", 
       "types" : [ "locality", "political" ] 
      }, 
      { 
       "long_name" : "Santa Clara County", 
       "short_name" : "Santa Clara County", 
       "types" : [ "administrative_area_level_2", "political" ] 
      }, 
      { 
       "long_name" : "California", 
       "short_name" : "CA", 
       "types" : [ "administrative_area_level_1", "political" ] 
      }, 
      { 
       "long_name" : "United States", 
       "short_name" : "US", 
       "types" : [ "country", "political" ] 
      }, 
      { 
       "long_name" : "94043", 
       "short_name" : "94043", 
       "types" : [ "postal_code" ] 
      } 
     ], 
     "formatted_address" : "1600 Amphitheatre Parkway, Mountain View, CA 94043, USA", 
     "geometry" : { 
      "location" : { 
       "lat" : 37.4222953, 
       "lng" : -122.0840671 
      }, 
      "location_type" : "ROOFTOP", 
      "viewport" : { 
       "northeast" : { 
        "lat" : 37.42364428029151, 
        "lng" : -122.0827181197085 
       }, 
       "southwest" : { 
        "lat" : 37.42094631970851, 
        "lng" : -122.0854160802915 
       } 
      } 
     }, 
     "types" : [ "street_address" ] 
     } 
    ], 
    "status" : "OK" 
} 

回答

3

$data['results']是索引数组。你只需要修复您是如何访问它:

$data['results'][0]['geometry']['location']['lat'] 
+1

+1:嗯,我是太慢了:P – nem035 2014-09-26 20:55:44

+0

呵呵。我也是,nem ;-) – 2014-09-26 20:56:21

+0

没问题,乐于帮忙! @恩对不起! :P – 2014-09-26 21:01:52

0

你的道:

$data['results']['geometry']['location']['lat'] // same for ['lng'] 

你忘了把指数

$data['results'][0]['geometry']['location']['lat'] // same for ['lng'] 
0

你似乎已经错过了$data['results']是有一个元素的数组,因此您需要使用[0]来引用该元素。

尝试:$data['results'][0]['geometry']['location']['lat']