php json_encode在jquery结束时收到,丢失了命令?

时间:2015-05-21 09:45:23

标签: php ajax

当我将php中的密钥对数组返回到jquery(javascript)的ajax调用时,我在php中维护的顺序会丢失。如何保留数组顺序。

例如array('node' => 'abc', 'test' => 'xyz', 'a' => 'xyz') jquery中的array('a' => 'xyz', 'node' => 'abc', 'test' => 'xyz')数组乱序。任何帮助。

1 个答案:

答案 0 :(得分:0)

JavaScript没有像PHP那样的关联数组的概念,所以当你对JSON进行编码时,它就会成为一个对象。对象键的排序并不重要,因此依赖它们可能会导致意外行为。

如果排序很重要,您应该考虑使用带有对象(或关联数组)的非关联数组作为值。

$myArray = array(
    array('x' => 'node', 'y' => 'abc'),
    array('x' => 'test', 'y' => 'xyz'),
    array('x' => 'a',    'y' => 'xyz'),
);

那将编码为:

[
    {"x": "node", "y": "abc"},
    {"x": "test", "y": "xyz"},
    {"x": "a",    "y": "xyz"}
]