Array to property Object in Javascript

I need some help please.

I have this array in php:

Array ( 
    [0] => Array ( 
        [name] => Ville1 
        [description] => adresse1 
        [lng] => -10.35 
        [lat] => 29.1833 
    ) 
    [1] => Array ( 
        [name] => Ville2 
        [description] => description2 
        [lng] => 12.61667 
        [lat] => 38.3833 
    ) 
) 

How can I transform it in this format and add in a objet in javascript ?

locations: {
    "0": {
      lat: "48.3833",
      lng: "12.61667",
      name: "Ville1",
      description: "adresse1"
    },
    "1": {
      lat: "29.1833",
      lng: "-10.35",
      name: "Ville2",
      description: "adresse2"
    }
  },

Thanks and sorry for the english..

>Solution :

The solution is simple. The only think you have to do, is to pass the array to the php function json_encode.

This will convert automatically your array to JSON.

The same way, you could also convert PHP Objects to JSON.

Finally, there’s also another function of PHP with the name json_decode that does the opposite. If you have a JSON string, you can convert it to PHP Array or Object.

The only difference, is that when you convert JSON objects, in PHP you get stdClass instances.

<?php

$array = [
    [
        "name" => "Ville1",
        "description" => "adresse1",
        "lng" => -10.35,
        "lat" => 29.1833
    ],
    [
        "name" => "Ville2",
        "description" => "description2",
        "lng" => 12.61667,
        "lat" => 38.3833
    ]
];

$jsonStructure = json_encode($array);

?>
<script>
var locations = <?php echo $jsonStructure; ?>;

// The following line should print in your browser console 
// the word: Ville1
console.log(locations[0].name);
</script>

Leave a Reply