数组php中数字键的自动排序

数组php中数字键的自动排序,php,arrays,Php,Arrays,我有一个数组,我在其中插入值和与之关联的数字键。我的问题是,当我插入一个key小于在数组中较大的key之后插入的key的值时,即它是下一个元素,而不是上一个元素(但key较小)。我不想应用排序,因为我没有太多的时间限制,而且数据很大。稍后,我需要在数组中搜索特定的键和值对。因此,我不能使用数组填充来初始化数组(数组的长度是100000)。因为如果我这样做,搜索速度会非常慢。我只希望键值对(我插入的)在数组中,但我希望具有较小数值的键应该自动成为具有较大数值的键的前一个元素。 例如: $a[0]=

我有一个数组,我在其中插入值和与之关联的数字键。我的问题是,当我插入一个key小于在数组中较大的key之后插入的key的值时,即它是下一个元素,而不是上一个元素(但key较小)。我不想应用排序,因为我没有太多的时间限制,而且数据很大。稍后,我需要在数组中搜索特定的键和值对。因此,我不能使用数组填充来初始化数组(数组的长度是100000)。因为如果我这样做,搜索速度会非常慢。我只希望键值对(我插入的)在数组中,但我希望具有较小数值的键应该自动成为具有较大数值的键的前一个元素。 例如:

$a[0]=1;
$a[25]=2;
$a[12]=3;

这里,
$a[12]
应该是数组的第二个元素,但当我使用foreach来超出每个元素时,它就变成了第三个元素。

你不能免费获得排序。使用简单的
foreach
循环初始化数组。要么这样,要么咬紧牙关,要么a)在末尾排序,要么b)在插入每个元素后进行排序。

您不能免费获得排序。使用简单的
foreach
循环初始化数组。要么这样,要么咬紧牙关,要么a)在末尾排序,要么b)在插入每个元素后进行排序。

那么您希望数组排序,而不排序吗?祝你好运。我只是想说,如果键'12'小于'25',那么它必须在它前面(因为两者都是数字),所以你希望数组排序,而不排序?祝你好运。我只是想说,如果键'12'小于'25',那么它必须在它之前(因为两者都是数字),更好的解决方案是在键之后插入数组_切片的元素,该键刚好小于该值。。但我认为你们有比这更好的解决方案。。但我认为我比你的更好,要在数组中找到比你要插入的密钥小的最大密钥,你需要……排序!(至少,这是幕后发生的事情…)我认为OP所寻找的是PHP中的一个数据结构,它在插入项时对数组进行排序(就像C++中std::map这样的二叉树)。据我所知,PHP数组没有这样的数据结构,但您可以创建它。。。我不知道这是否会比填充数组然后对其排序更快。更好的解决方案是在键值后面插入带有array_slice的元素,该键值刚好小于该键值。。但我认为你们有比这更好的解决方案。。但我认为我比你的更好,要在数组中找到比你要插入的密钥小的最大密钥,你需要……排序!(至少,这是幕后发生的事情…)我认为OP所寻找的是PHP中的一个数据结构,它在插入项时对数组进行排序(就像C++中std::map这样的二叉树)。据我所知,PHP数组没有这样的数据结构,但您可以创建它。。。我不知道这是否会比填充数组然后排序更快。