我试图从PHP到我的网站页面获取年份和月份列表。该网站使用JavaScript,因此我需要这些数据为JSON。
生成我需要的信息没有问题,但我在PHP上使用product_image
,所有嵌套的数组都变成了对象,因此,我无法在的JavaScript。
这就是我在PHP上生成数组所做的:
json_encode
如果我只是使用$list = sql("SELECT DISTINCT YEAR(created) AS year FROM order");
foreach ($list as &$row) {
$row['month'] = array();
for ($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...
}
}
打印$list
,则结果为:
return print_r($list);
但是当我使用
时Array (
[0] => Array (
[year] => 2016
[month] => Array (
[1] => stdClass Object (
[Month] => Jan
)
[2] => stdClass Object (
[Month] => Feb
)
//Etc...
所有嵌套数组都变成了对象。例如,Month数组,变成一个对象,这是结果return print_r(json_encode($list));
//or
return print_r(json_encode($list, true));
的打印屏幕:
有没有办法解决这个问题?或者我做错了?
答案 0 :(得分:0)
如果您只需要月份名称,请替换这些行:
$row['month'][$i] = new stdClass();
$row['month'][$i]->Month = date("M", strtotime(date("Y")."-".$i."-01"));
有了这个:
$row['month'][$i] = date("M", strtotime(date("Y")."-".$i."-01"));
你不需要一个STD对象来完成你想要完成的任务。