Php 数组中的键排序

Php 数组中的键排序,php,arrays,Php,Arrays,我偶然发现了一件使我困惑的事。在此之前,我认为如果您保存一个数组,并且它的键是整数,那么该数组将自动对自身进行排序。 也就是说,如果我在键1之前添加键2,我认为数组将按最小的数字排序: Array ( [1] => one [2] => two ) 相反,它是这样出现的: Array ( [2] => two [1] => one ) 操作: $arr = array(); $arr[2] = 'two'; $arr[1] = 'one

我偶然发现了一件使我困惑的事。在此之前,我认为如果您保存一个数组,并且它的键是整数,那么该数组将自动对自身进行排序。
也就是说,如果我在键
1
之前添加键
2
,我认为数组将按最小的数字排序:

Array
(
    [1] => one
    [2] => two
)
相反,它是这样出现的:

Array
(
    [2] => two
    [1] => one
)
操作:

$arr = array();
$arr[2] = 'two';
$arr[1] = 'one';
这看起来可能没什么,但有时我会使用
foreach()
或将ID存储在数组中,并指望它们被排序以进行
插入
-查询,然后它们需要按正确的顺序排列(由于自动递增)

所以问题是:
php中预期的排序结果是什么

我有一个相当强的记忆,我以前通过输出1整理过数组。php版本与php版本之间是否存在差异


谢谢你的回答

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


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

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

您可以使用按键对数组进行排序。

说明PHP数组实际上是有序的哈希映射,其中键按生成顺序存储

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

解释说,PHP数组实际上是有序的哈希映射,其中键按生成顺序存储


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

您是如何使用该数组的?i、 您使用了什么数组操作?数组中的AFAIK项按照您将它们添加到数组中的顺序。您可以使用一些内置的PHP函数按键对数组进行排序。
$arr[2]='blabla'
只会将元素推到数组的末尾。因此,为什么要使用
ksort
重新排序您是如何使用该数组的?i、 您使用了什么数组操作?数组中的AFAIK项按照您将它们添加到数组中的顺序。您可以使用一些内置PHP函数按键对数组进行排序。
$arr[2]='blabla'
只会将元素推到数组的末尾。因此,请使用
ksort
重新排序感谢您的回答。我想我的记性不好,这是在以前的项目中自动排序的。谢谢你的回答。我想我的记性不好,这是在以前的项目中自动排序的。