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:
object(stdClass)[1]
public 'status' => string 'OK' (length=2)
public 'results' =>
array
0 =>
object(stdClass)[2]
public 'types' =>
array
0 => string 'street_address' (length=14)
public 'formatted_address' => string '5721 N Northcott Ave, Chicago, IL 60631, USA' (length=44)
public 'address_components' =>
array
0 =>
object(stdClass)[3]
public 'long_name' => string '5721' (length=4)
public 'short_name' => string '5721' (length=4)
public 'types' =>
array
0 => string 'street_number' (length=13)
1 =>
object(stdClass)[4]
public 'long_name' => string 'Illinois' (length=8)
public 'short_name' => string 'IL' (length=2)
public 'types' =>
array
0 => string 'administrative_area_level_1' (length=27)
1 => string 'political' (length=9)
2 =>
object(stdClass)[5]
public 'long_name' => string '60631' (length=5)
public 'short_name' => string '60631' (length=5)
public 'types' =>
array
0 => string 'postal_code' (length=11)
public 'geometry' =>
object(stdClass)[6]
public 'location' =>
object(stdClass)[7]
public 'lat' => float 41.985886
public 'lng' => float -87.790746
public 'location_type' => string 'ROOFTOP' (length=7)
public 'viewport' =>
object(stdClass)[8]
public 'southwest' =>
object(stdClass)[9]
public 'lat' => float 41.9827384
public 'lng' => float -87.7938936
public 'northeast' =>
object(stdClass)[10]
public 'lat' => float 41.9890336
public 'lng' => float -87.7875984
You use json_decode.
E.g.:
$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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With