My foreach loop dont work. It brings me only 1st item info when i use $arr in my foreach loop but when i change that to $value it gives me nothing 🙁
JavaScript
x
<?php
$url = file_get_contents("libs/json/countryBorders.geo.json");
$arr = json_decode($url,true);
foreach($arr as $value) {
echo $value['features'][0]['properties']['name'];
echo $value['features'][0]['properties']['iso_a2'];
};
?>
Here is one of my elements in json file. I want to print all names and iso_a2 codes
JavaScript
{
"type":"FeatureCollection",
"features":[
{
"type":"Feature",
"properties":{
"name":"Bahamas",
"iso_a2":"BS",
"iso_a3":"BHS",
"iso_n3":"044"
},
"geometry":{
"type":"MultiPolygon",
"coordinates":[
[
[
[
-77.53466,
23.75975
],
[
-77.78,
23.71
],
[
-78.03405,
24.28615
],
[
-78.40848,
24.57564
],
[
-78.19087,
25.2103
],
[
-77.89,
25.17
],
[
-77.54,
24.34
],
[
-77.53466,
23.75975
]
]
],
[
[
[
-77.82,
26.58
],
[
-78.91,
26.42
],
[
-78.98,
26.79
],
[
-78.51,
26.87
],
[
-77.85,
26.84
],
[
-77.82,
26.58
]
]
],
[
[
[
-77,
26.59
],
[
-77.17255,
25.87918
],
[
-77.35641,
26.00735
],
[
-77.34,
26.53
],
[
-77.78802,
26.92516
],
[
-77.79,
27.04
],
[
-77,
26.59
]
]
]
]
}
}
Advertisement
Answer
I didn’t read, that it is a list of your example object. So better follow the other answer :S
You have an JSON Object (it is not an array/list) and I wonder if that even works. You want to get the features of the path “/Features/” right? So you have to change it like the following:
JavaScript
<?php
$url = file_get_contents("libs/json/countryBorders.geo.json");
$arr = json_decode($url,true);
foreach($arr['features'] as $feature) {
echo $feature['properties']['name'];
echo $feature['properties']['iso_a2'];
};
?>