Создание моего собственного объекта и / или массива из json приводит к PHP - PullRequest
1 голос
/ 07 ноября 2019

Я хочу создать свой собственный объект или массив, используя значения из проанализированного json.

например, я хочу, чтобы мой массив выглядел как [name=>"{value from parsed json object or array}",address=>"{value from parsed json object or array}"] и т. Д.

Я в основном получаю результаты от json API и хочу создать свой собственный массив или объект из результатов, но не знаю, какЯ делаю это в PHP

<?php



    $Consumer_Key = 'xxx';
    $Consumer_Secret = 'xxx';

    if (filter_has_var(INPUT_GET, 'location')) {
        $maps_url = "http://www.mapquestapi.com/geocoding/v1/address?key=$Consumer_Key&maxResults=3&location=" . urlencode($_GET['location']);
        $maps_json = file_get_contents($maps_url);
        $maps_array = json_decode($maps_json, true);

        $lat = $maps_array['results'][0]['locations'][0]['latLng']['lat'];
        $lng = $map1_array['results'][0]['locations'][0]['latLng']['lng'];
        $preferredLocation = $maps_array['results'][0]['providedLocation']['location'];
    }
    ?>



 <!DOCTYPE html>
 <html lang="en">

 <head>
     <meta charset="UTF-8">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <meta http-equiv="X-UA-Compatible" content="ie=edge">
     <title>Document</title>
 </head>

 <body>
     <form action="" method="GET">
         <input type="text" name="location">
         <button type="submit">Submit</button>
     </form>

     <?php
        if ($maps_array) : ?>
         <h1>Place Searched: <?= $preferredLocation ?></h1>
     <?php endif;
        ?>


     <ul>
         <?php
            if ($maps_array) :
                foreach ($maps_array['results'][0]['locations'] as $val) : ?>
                 <li>County: <?= $val['adminArea4']; ?></li>
                 <li>Lat: <?= $lat; ?></li>
                 <li>Lng: <?= $lng; ?></li>
                 <br>
         <?php endforeach;
            endif;
            ?>
     </ul>





 </body>

 </html>

1 Ответ

0 голосов
/ 07 ноября 2019

Эти строки

$lat = $maps_array['results'][0]['locations'][0]['latLng']['lat'];
$lng = $map1_array['results'][0]['locations'][0]['latLng']['lng'];
$preferredLocation = $maps_array['results'][0]['providedLocation']['location'];

возвращают правильные значения?

Вы можете проверить это с помощью

var_dump($lat, $lng, $preferredLocation);

Если все в порядке, вы можете создать свой собственный массивв качестве примера

$myArray = [
  "lat" => $lat,
  "len" => $len,
  "location" => $preferredLocation
];

//Test output
var_dump($myArray);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...