目前我通过Ajax以以下形式返回一个PHP数组:
$months = array(November, December, January);
一旦我将值返回给 Javascript,我需要以这种方式格式化它,以便它与我正在使用的 js 库兼容:
var months = [[0, "November"], [1, "December"], [2, "January"]];
我尝试将其作为来自 PHP 的关联数组返回,并对其进行编码,并对其进行编码,我收到它:
[["November"],{"1":"December"},{"2":"January"}]
为什么索引号0 json_encoded
一次就会消失?而且这种格式与之前的格式相同吗?
Javascript 会将关联数组转换为 Javscript 对象。
获取格式的最简单方法是使用此数组格式:
$months = array(
array(0, 'November'),
array(1, 'December'),
array(2, 'January')
);
编码时应返回以下内容;
[[0,"November"],[1,"December"],[2,"January"]]
编辑:在根据请求动态创建它方面:
$months = array();
$dateRange = array(
'November' => 1000,
'December' => 1500,
'January' => 300,
'February' => 600
);
$counter = 0;
foreach ($dateRange as $month => $amount) {
$months[] = array($counter, $month);
$counter++;
}
echo json_encode($months);
输出:[[0,"November"],[1,"December"],[2,"January"],[3,"February"]]