I have a JSON string, and I want to decode this string to get php array and to add it to database, but when I try to call some part of array I dont get anything:
<?php
$json = '{"zoom":13,"tilt":0,"mapTypeId":"hybrid","center":{"lat":45.38591280296377,"lng":19.936323169799834},"overlays":[{"type":"polygon","title":"Polje 1","content":"Vojvodina","fillColor":"#ffbf1a","fillOpacity":0.3,"strokeColor":"#000","strokeOpacity":0.8,"strokeWeight":3,"paths":[[{"lat":"45.37867863632308","lng":"19.948768615722656"},{"lat":"45.370719925928746","lng":"19.941558837890625"},{"lat":"45.36227764550136","lng":"19.92816925048828"},{"lat":"45.359262240003495","lng":"19.942245483398438"},{"lat":"45.35588479505299","lng":"19.955806732177734"},{"lat":"45.35974471568275","lng":"19.958553314208984"},{"lat":"45.36312193024184","lng":"19.959583282470703"},{"lat":"45.365534102931655","lng":"19.960613250732422"},{"lat":"45.36529289029106","lng":"19.96490478515625"},{"lat":"45.37084052080666","lng":"19.970226287841797"}]]}]}';
$arr = (json_decode($json, true));
echo $arr['paths'];
?>
So why I cant print $arr['paths']
???
Because that is an array and you can't echo
it right way.. You should make use of print_r
print_r($arr['overlays'][0]['paths']);
OUTPUT :
Array
(
[0] => Array
(
[0] => Array
(
[lat] => 45.37867863632308
[lng] => 19.948768615722656
)
[1] => Array
(
[lat] => 45.370719925928746
[lng] => 19.941558837890625
)
[2] => Array
(
[lat] => 45.36227764550136
[lng] => 19.92816925048828
)
[3] => Array
(
[lat] => 45.359262240003495
[lng] => 19.942245483398438
)
[4] => Array
(
[lat] => 45.35588479505299
[lng] => 19.955806732177734
)
[5] => Array
(
[lat] => 45.35974471568275
[lng] => 19.958553314208984
)
[6] => Array
(
[lat] => 45.36312193024184
[lng] => 19.959583282470703
)
[7] => Array
(
[lat] => 45.365534102931655
[lng] => 19.960613250732422
)
[8] => Array
(
[lat] => 45.36529289029106
[lng] => 19.96490478515625
)
[9] => Array
(
[lat] => 45.37084052080666
[lng] => 19.970226287841797
)
)
)
You array structure is this:
array (size=5)
'zoom' => int 13
'tilt' => int 0
'mapTypeId' => string 'hybrid' (length=6)
'center' =>
array (size=2)
'lat' => float 45.385912802964
'lng' => float 19.9363231698
'overlays' =>
array (size=1)
0 =>
array (size=9)
'type' => string 'polygon' (length=7)
'title' => string 'Polje 1' (length=7)
'content' => string 'Vojvodina' (length=9)
'fillColor' => string '#ffbf1a' (length=7)
'fillOpacity' => float 0.3
'strokeColor' => string '#000' (length=4)
'strokeOpacity' => float 0.8
'strokeWeight' => int 3
'paths' =>
array (size=1)
...
To dump an array, use var_dump( $arr )
. paths
is located at $arr['overlays'][0]['paths']
.
paths
is an array after decode,
print_r($arr['overlays'][0]['paths']);