参见英文答案 >
json_encode not preserving order2个
我有一个关联数组
我有一个关联数组
Array( [289] => Array( 'name'=> 'One' ),[292] => Array( 'name'=> 'One' ),[290] => Array( 'name'=> 'One' ) )
我在这个数组上使用json_encode后.键被排序,虽然我把它作为JSON对象.
有办法防止这种行为吗?
there is no standard that says it has to be in a certain order.
请参阅此相关问题:How do you stop Chrome and Opera sorting JSON objects by Index ASC?
注意:我们正在谈论PHP函数,但结果基本上是javascript,因此关于不存在的标准的声明也适用.
顺便说一句:我用以下代码测试了它. PHP本身似乎没有对数组进行排序,firefox也不如此(根据firebug控制台).
<pre> <?PHP $array = array(); $array[289] = array('name'=>'One'); $array[292] = array('name'=>'One'); $array[290] = array('name'=>'One'); print_r($array); $string = json_encode($array); print_r($string); ?> </pre> <script> var foo = <?=$string?>; console.log(foo); </script>