I have the following JSON array:
<?php
$json = {
"status": "OK",
"results": [ {
"types": [ "street_address" ],
"formatted_address": "5721 N Northcott Ave, Chicago, IL 60631, USA",
"address_components": [ {
"long_name": "5721",
"short_name": "5721",
"types": [ "street_number" ]
}, {
"long_name": "Illinois",
"short_name": "IL",
"types": [ "administrative_area_level_1", "political" ]
}, {
"long_name": "60631",
"short_name": "60631",
"types": [ "postal_code" ]
} ],
"geometry": {
"location": {
"lat": 41.9858860,
"lng": -87.7907460
},
"location_type": "ROOFTOP",
"viewport": {
"southwest": {
"lat": 41.9827384,
"lng": -87.7938936
},
"northeast": {
"lat": 41.9890336,
"lng": -87.7875984
}
}
}
} ]
};
?>
Using PHP, how do I get the geometery->location->lat
& lng
values from my JSON array above?
For example (pseudo code):
<?php
$lat = $json['geometry']['location']['lat']; // 41.9858860
$lng = $json['geometry']['location']['lng']; // -87.7907460
?>
You use json_decode
and then $var->results[0]->geometry->location->lat;
.
json_decode
yields the following structure:
(stdClass)[1] public 'status' => string 'OK' (length=2) public 'results' => 0 => (stdClass)[2] public 'types' => 0 => string 'street_address' (length=14) public 'formatted_address' => string '5721 N Northcott Ave, Chicago, IL 60631, USA' (length=44) public 'address_components' => 0 => (stdClass)[3] public 'long_name' => string '5721' (length=4) public 'short_name' => string '5721' (length=4) public 'types' => 0 => string 'street_number' (length=13) 1 => (stdClass)[4] public 'long_name' => string 'Illinois' (length=8) public 'short_name' => string 'IL' (length=2) public 'types' => 0 => string 'administrative_area_level_1' (length=27) 1 => string 'political' (length=9) 2 => (stdClass)[5] public 'long_name' => string '60631' (length=5) public 'short_name' => string '60631' (length=5) public 'types' => 0 => string 'postal_code' (length=11) public 'geometry' => (stdClass)[6] public 'location' => (stdClass)[7] public 'lat' => float 41.985886 public 'lng' => float -87.790746 public 'location_type' => string 'ROOFTOP' (length=7) public 'viewport' => (stdClass)[8] public 'southwest' => (stdClass)[9] public 'lat' => float 41.9827384 public 'lng' => float -87.7938936 public 'northeast' => (stdClass)[10] public 'lat' => float 41.9890336 public 'lng' => float -87.7875984
You use json_decode
.
Eg:
$json_obj = json_decode($json);
echo $json_obj->results[0]->geometry->location->lat;
We access the first element of the results array, then navigate through the geometry, location, and lat properties. You can also make it use associative arrays, but the default is an object.
Greetings,
I recommend reading the json_decode documentation
<?php
$obj = json_decode($json);
$lat = $obj->results[0]->geometry->location->lat;
?>
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.