我偶然发现了一些让我困惑的事情。在此之前,如果您保存一个数组并将它的键保存在整数中,该数组将自动对其进行排序。
也就是说,如果我在键2之前添加键1,那么我认为数组将按照最低的数字进行排序:
Array
(
[1] => one
[2] => two
)相反,它是这样出现的:
Array
(
[2] => two
[1] => one
)操作:
$arr = array();
$arr[2] = 'two';
$arr[1] = 'one';这看起来可能没什么,但有时我会在数组中使用foreach()或存储ids,并依靠它们为可能的INSERT-query进行排序,然后它们需要按正确的顺序排列(由于自动递增)。
所以问题是
在php中预期的排序结果是什么?
我有一个相当强的内存,我以前通过输出#1对数组进行排序,这与php版本和php版本不同吗?
谢谢你的回答!
发布于 2012-03-26 09:34:58
PHP数组实际上是一个有序的映射。它保持顺序,较早的元素将先于后面的元素。
可以使用克索德按键对数组进行排序。
发布于 2012-03-26 09:39:17
这篇文章解释说,PHP数组实际上是有序的散列映射,键是按生成的顺序存储的。
如果您想要更传统的数组行为,请尝试使用SPLFixedArray类。
https://stackoverflow.com/questions/9869639
复制相似问题