javascript - PHP encoding nested array as object -
i'm trying list of year , month php web site page. website works javascript, need data json.
there no problem generate information need, use json_encode
on php, nested arrays turn object , because of this, can't have proper behavior on javascript.
this i'm doing generate array on php:
$list = sql("select distinct year(created) year order"); foreach ($list &$row) { $row['month'] = array(); ($i=1; $i<=12; $i++) { $row['month'][$i] = new stdclass(); $row['month'][$i]->month = date("m", strtotime(date("y")."-".$i."-01")); //more information goes here... } }
if print $list
using return print_r($list);
result:
array ( [0] => array ( [year] => 2016 [month] => array ( [1] => stdclass object ( [month] => jan ) [2] => stdclass object ( [month] => feb ) //etc...
but when use
return print_r(json_encode($list)); //or return print_r(json_encode($list, true));
all nested array turn object. example, month array, turn object, print screen of console.log
of result:
is there way fix this? or doing wrong?
if need month names, replace these rows:
$row['month'][$i] = new stdclass(); $row['month'][$i]->month = date("m", strtotime(date("y")."-".$i."-01"));
with this:
$row['month'][$i] = date("m", strtotime(date("y")."-".$i."-01"));
you don't need std object tring accomplish.
Comments
Post a Comment