我有一个使用json_encode
的数组,它在PHP
中看起来像这样
Array
(
[4] => Array
(
[numberof] => 60
[date] => 4
)
[3] => Array
(
[numberof] => 3
[date] => 3
)
[2] => Array
(
[numberof] => 6
[date] => 2
)
[1] => Array
(
[numberof] => 5
[date] => 1
)
[12] => Array
(
[numberof] => 1
[date] => 12
)
[11] => Array
(
[numberof] => 0
[date] => 11
)
)
但是,当通过javaScript
访问时,顺序将是以下
{
"1":{"numberof":5,"date":"1"},
"2":{"numberof":6,"date":"2"},
"3":{"numberof":3,"date":"3"},
"4":{"numberof":60,"date":"4"},
"11":{"numberof":0,"date":"11"},
"12":{"numberof":1,"date":"12"}
}
我如何才能保持在PHP中设置的顺序。
JavaScript对象没有排序。
ECMA 5.1第4.3.3节(不保证订单)
对象是属性的集合,并且具有单个原型对象原型可能是null值。
ECMA第三版第4.3.3节(明确表示未订购)
对象是object类型的成员。它是一个无序属性的集合,每个属性包含基元值,对象或函数。存储在对象属性中的函数是称为方法。
即使使用JavaScript"关联数组"(基本上是对象中命名属性的集合),也无法保证顺序。
我是个天才,你应该使用一个所谓的关联数组其中键不是数字而是字符串
//so instead of
[4] => Array
(
[numberof] => 60
[date] => 4
)
//make it
["4"] => Array
(
[numberof] => 60
[date] => 4
)
它可能会保持订单