我想从他们的邮政编码(加拿大/美国)的谷歌地理编码中获得用户所在的城市,州/省,国家/地区。我检索数据为JSON:https://developers.google.com/maps/documentation/geocoding/#JSONGoogle地理编码。解析JSON问题
问题是,并不总是相同的数量/顺序的'address_components'。我正在使用就像:$geocodedinfo['results'][0]['address_components'][3]['short_name'];
但我很快意识到,这并不总是省/国家,因为有时谷歌会在'address_components'下添加一个额外的元素。
有没有一种方法来解析结果只是为了我需要的细节(即:城市,州/省,国家)?
编辑当我得到它json_decode($result, true)
Array
(
[results] => Array
(
[0] => Array
(
[address_components] => Array
(
[0] => Array
(
[long_name] => V2X 2P6
[short_name] => V2X 2P6
[types] => Array
(
[0] => postal_code
)
)
[1] => Array
(
[long_name] => Maple Ridge
[short_name] => Maple Ridge
[types] => Array
(
[0] => locality
[1] => political
)
)
[2] => Array
(
[long_name] => Maple Ridge
[short_name] => Maple Ridge
[types] => Array
(
[0] => administrative_area_level_3
[1] => political
)
)
[3] => Array
(
[long_name] => Greater Vancouver Regional District
[short_name] => Greater Vancouver Regional District
[types] => Array
(
[0] => administrative_area_level_2
[1] => political
)
)
[4] => Array
(
[long_name] => British Columbia
[short_name] => BC
[types] => Array
(
[0] => administrative_area_level_1
[1] => political
)
)
[5] => Array
(
[long_name] => Canada
[short_name] => CA
[types] => Array
(
[0] => country
[1] => political
)
)
)
[formatted_address] => Maple Ridge, BC V2X 2P6, Canada
[geometry] => Array
(
[bounds] => Array
(
[northeast] => Array
(
[lat] => 49.2214351
[lng] => -122.6577849
)
[southwest] => Array
(
[lat] => 49.219268
[lng] => -122.663613
)
)
[location] => Array
(
[lat] => 49.2202679
[lng] => -122.660587
)
[location_type] => APPROXIMATE
[viewport] => Array
(
[northeast] => Array
(
[lat] => 49.2217005303
[lng] => -122.6577849
)
[southwest] => Array
(
[lat] => 49.2190025697
[lng] => -122.663613
)
)
)
[types] => Array
(
[0] => postal_code
)
)
)
[status] => OK
)
我使用的是XML而不是JSON,但我必须迭代,直到找到需要的数据。 –
我有同样的问题,但冷杉我的情况下,我最需要的address_components所以我用foreach()得到我想要的,忘记其余的。 –
@ayeshk是否有可能遍历数组,并获取['long_name']值WHERE ['types'] ['0'] =='country'for isntance?我从来没有这样做过。 – cantaffordretail