数组中的键排序

Rob*_*lin 0 php arrays

我偶然发现了令我困惑的事情.在我之前,如果你保存一个数组并且它的键是整数,那么数组将自动排序.
也就是说,如果我在密钥2之前添加密钥1,我会认为数组将按最小数字排序:

Array
(
    [1] => one
    [2] => two
)
Run Code Online (Sandbox Code Playgroud)

相反,它出现如下:

Array
(
    [2] => two
    [1] => one
)
Run Code Online (Sandbox Code Playgroud)

操作:

$arr = array();
$arr[2] = 'two';
$arr[1] = 'one';
Run Code Online (Sandbox Code Playgroud)

这似乎没什么,但有时候我foreach()在数组中使用或存储id并指望它们可能是aquery的分类INSERT,然后它们需要处于正确的顺序(由于AUTO INCREMENT).

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

我有一个相当强大的内存,我之前通过输出#1整理了数组.这是不同的PHP版本到PHP版本?

谢谢你的回答!

Kar*_*ath 5

PHP数组实际上是一个有序的映射.它保持顺序,先前的元素将在后面的元素之前.

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