如何格式化以这种方式通过 Ajax 返回到 javascript 的 php 数组


How to I format a php array that is returned to javascript via Ajax in this way?

目前我通过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"]]