【问题标题】:php json_encode received at jquery end, lost order?在jquery结束时收到php json_encode,丢失订单?
【发布时间】:2015-05-21 09:45:23
【问题描述】:

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

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

【问题讨论】:

标签: php ajax


【解决方案1】:

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"}
]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-15
    • 2017-10-15
    • 1970-01-01
    相关资源
    最近更新 更多