php - 防止 json_encode 关联数组排序

标签 php associative-array json

<分区>

我有一个关联数组

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>

关于php - 防止 json_encode 关联数组排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21216391/

相关文章:

php - 更改 css 但更改不适用于网站

php - GearmanClient::do(): send_packet(GEARMAN_COULD_NOT_CONNECT) 在 php shell_exec 中失败

php - 如何在 Doctrine2/ZF2 中使用 Memcached?

perl - 向数组散列中的数组添加新元素

java - 在 JAVA 中替代 PHP 的关联数组

Android登录注册中java.lang.String无法转换为JSONObject

php - 在 PHP 中使用自定义 DTD 验证 XML

javascript - 将 knockout 与关联数组一起使用

android - httpPost 不填充 ListView

java - Memcache 可序列化的 JSONObject?