3

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
?>

3 Answers 3

5

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
Sign up to request clarification or add additional context in comments.

Comments

3

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.

2 Comments

If I use json_decode, then what? How would I reference the LAT and LNG values?
I've actually already read the examples in that link and still couldn't figure it out. Which is why I'm posting this question to SO now
2

Greetings,

I recommend reading the json_decode documentation

  <?php 
     $obj = json_decode($json);
     $lat = $obj->results[0]->geometry->location->lat;
  ?>

2 Comments

I've actually already read the examples in that link and still couldn't figure it out. Which is why I'm posting this question to SO now.
Righteo. Well I hope you got it sorted.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.