首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按值顺序排列的访问数组

按值顺序排列的访问数组
EN

Stack Overflow用户
提问于 2013-08-16 12:05:40
回答 2查看 59关注 0票数 0

我有一个php数组,我正在使用json_encode进行编码,如下所示。

PHP代码:

代码语言:javascript
复制
$arr=array(10=>"Apple",1=>"Ball",9=>"Cat",11=>"Dog",15=>"Elephant");
echo json_encode($arr);

json编码的输出与原始数组保持相同的顺序。但是,当我试图访问javascript中的json_encode输出时,该对象的元素按递增的数字索引排序:

控制台日志:

代码语言:javascript
复制
[{1="Ball",9="Cat",10="Apple",11="Dog",15="Elephant"}]

我希望保留与原始数组相同的顺序。这是如何做到的呢?

EN

回答 2

Stack Overflow用户

发布于 2013-08-16 12:10:55

您不应该依赖于javascript对象的键顺序。有关更多信息,请参见这篇文章:

Sort JavaScript object by key

如果顺序很重要,则应该创建一个对象数组,每个对象的位置如下:

代码语言:javascript
复制
{9: "Cat"}

正如我链接的文章中描述的那样,如果您只需要按特定顺序迭代,则另一个选项是保留您的结构,使用Object.keys()获取键,然后排序,然后对排序的键进行迭代。

票数 2
EN

Stack Overflow用户

发布于 2013-08-16 12:10:45

尝试引用您的索引(有效地使它们成为String):

代码语言:javascript
复制
$arr = array("10" => "Apple", "1" => "Ball", "9" => "Cat", "11" => "Dog", "15" => "Elephant");
echo json_encode($arr);

这将为您提供一个应该看起来像

代码语言:javascript
复制
{
    "10": "Apple",
    "1": "Ball",
    "9": "Cat",
    "11": "Dog",
    "15": "Elephant"
}

如果必须有一个数组,则需要稍微不同地构造PHP数组:

代码语言:javascript
复制
$arr = array(array(10 => "Apple"), array(1 => "Ball"), array(9 => "Cat"), array(11 => "Dog"), array(15 => "Elephant"));
echo json_encode($arr);

威尔输出

代码语言:javascript
复制
[
    {"10":"Apple"},
    {"1":"Ball"},
    {"9":"Cat"},
    {"11":"Dog"},
    {"15":"Elephant"}
]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18272953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档