Как получить поля конкретного значения JSON в Codeigniter Php? - PullRequest
0 голосов
/ 17 мая 2018

Я использую Google Map Api, и получаю результат в форме JSON, а результат получается

    {
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Plot No 1",
               "short_name" : "Plot No 1",
               "types" : [ "premise" ]
            },
            {
               "long_name" : "B Block Road",
               "short_name" : "B Block Rd",
               "types" : [ "route" ]
            },
            {
               "long_name" : "Rangpuri Extention B-Block Pocket-4",
               "short_name" : "Rangpuri Extention B-Block Pocket-4",
               "types" : [ "political", "sublocality", "sublocality_level_1" ]
            },
            {
               "long_name" : "New Delhi",
               "short_name" : "New Delhi",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "South West Delhi",
               "short_name" : "South West Delhi",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "Delhi",
               "short_name" : "DL",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "India",
               "short_name" : "IN",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "110037",
               "short_name" : "110037",
               "types" : [ "postal_code" ]
            }
         ],
         "formatted_address" : "Plot No 1, B Block Rd, Rangpuri Extention B-Block Pocket-4, New Delhi, Delhi 110037, India",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 28.5379687,
                  "lng" : 77.121816
               },
               "southwest" : {
                  "lat" : 28.5377897,
                  "lng" : 77.1217006
               }
            },
            "location" : {
               "lat" : 28.5378435,
               "lng" : 77.1217523
            },
            "location_type" : "ROOFTOP",
            "viewport" : {
               "northeast" : {
                  "lat" : 28.5392281802915,
                  "lng" : 77.12310728029151
               },
               "southwest" : {
                  "lat" : 28.5365302197085,
                  "lng" : 77.12040931970849
               }
            }
         },
         "partial_match" : true,
         "place_id" : "ChIJibjV7RYcDTkRnaFq2Lg__b4",
         "types" : [ "premise" ]
      }
   ],
   "status" : "OK"
}

, и я хочу извлечь lat и lng, под объектом location, напишите сейчас I 'используя этот код

$mapcontent = json_decode($content,true);
 $lat = $mapcontent['results'][0]['geometry']['location']['lat'];
 $lng = $mapcontent['results'][0]['geometry']['location']['lng'];

, где $ content - результат вывода, о котором упоминалось выше, с использованием приведенного выше кода, и он работает, но иногда я получаю сообщение об ошибке undefined offest: 0, на $ lat и $В строке, есть ли другой способ получить конкретные данные из кода JSON, я уже ищу в интернете, но не понимаю, как решить эту проблему, пожалуйста, помогите мне

Ответы [ 3 ]

0 голосов
/ 17 мая 2018
$url='your url';            
$array = file_get_contents($url);
$array = (array)json_decode($array);
0 голосов
/ 17 мая 2018

Вы также можете написать код, как.

$mapcontent = json_decode($content,true);
if( true != empty($mapcontent['results'])) {
    $lat = $mapcontent['results'][0]['geometry']['location']['lat'];
    $lng = $mapcontent['results'][0]['geometry']['location']['lng'];
}
0 голосов
/ 17 мая 2018

Вы можете написать код как:

$mapcontent = json_decode($content,true);
$resultCount = count($mapcontent['results']);
if( $resultCount > 0 ) {
    $lat = $mapcontent['results'][0]['geometry']['location']['lat'];
    $lng = $mapcontent['results'][0]['geometry']['location']['lng'];
}

Это будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...