首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数组中的键排序

数组中的键排序
EN

Stack Overflow用户
提问于 2012-03-26 09:28:13
回答 2查看 70关注 0票数 0

我偶然发现了一些让我困惑的事情。在此之前,如果您保存一个数组并将它的键保存在整数中,该数组将自动对其进行排序。

也就是说,如果我在键2之前添加键1,那么我认为数组将按照最低的数字进行排序:

代码语言:javascript
复制
Array
(
    [1] => one
    [2] => two
)

相反,它是这样出现的:

代码语言:javascript
复制
Array
(
    [2] => two
    [1] => one
)

操作:

代码语言:javascript
复制
$arr = array();
$arr[2] = 'two';
$arr[1] = 'one';

这看起来可能没什么,但有时我会在数组中使用foreach()或存储ids,并依靠它们为可能的INSERT-query进行排序,然后它们需要按正确的顺序排列(由于自动递增)。

所以问题是

在php中预期的排序结果是什么?

我有一个相当强的内存,我以前通过输出#1对数组进行排序,这与php版本和php版本不同吗?

谢谢你的回答!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-26 09:34:58

PHP数组实际上是一个有序的映射。它保持顺序,较早的元素将先于后面的元素。

可以使用克索德按键对数组进行排序。

票数 5
EN

Stack Overflow用户

发布于 2012-03-26 09:39:17

这篇文章解释说,PHP数组实际上是有序的散列映射,键是按生成的顺序存储的。

如果您想要更传统的数组行为,请尝试使用SPLFixedArray类。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9869639

复制
相关文章

相似问题

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