我有一个关联数组
Array(
[289] => Array(
'name'=> 'One'
),
[292] => Array(
'name'=> 'One'
),
[290] => Array(
'name'=> 'One'
)
)
我在这个数组上使用json_encode之后。密钥已排序,但我将其作为JSON对象。
有没有办法阻止这种行为?
答案 0 :(得分:5)
没有标准表明它必须按照一定的顺序。
请参阅此相关问题:How do you stop Chrome and Opera sorting JSON objects by Index ASC?
注意:我们讨论的是PHP函数,但结果基本上是javascript,因此关于不存在的标准的声明也适用。
btw:我已使用以下代码对其进行了测试。 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>
答案 1 :(得分:-3)
试试这个:
$ar = array();
$ar[1] = array('1'=>'one');
$ar[2] = array('2'=>'two');
$ar[3] = array('3'=>'three');
print_r($ar);
$str= json_encode($ar);
print_r($str);
它应该有效,至少可以帮助我!