js的数组跟php是不同的,js的数组会根据数字key从小到大自动排序。
比如下面的代码:
var arr = [];
arr['1']='aaa';
arr['3']='bbb';
arr['2']='ccc';
for (k in arr) {
console.log(arr[k]);
}
结果是
aaa
ccc
bbb
实际上,arr的顺序被重新排列了,key'2'在'3'的前面,这个跟php是不同的。
我遇到的需求是key是数字(id),value是字符串。我想组成一个列表结构,按照插入的顺序排列。目前的解决办法是数字前加个空格。修改如下:
var arr = [];
arr[' 1']='aaa';
arr[' 3']='bbb';
arr[' 2']='ccc';
for (k in arr) {
console.log(arr[k]);
}
结果是
aaa
bbb
ccc
实在没办法了,key和value传给后台php,获取了key之后,在php端把key使用 intval()转成int型数字