PHP修复数组中的数字键

时间:2012-06-08 23:59:49

标签: php arrays sorting

出于某种原因,当从数组中删除项目时,我会留下0,2,3,4,6,9等键,而不是0,1,2,3,4,5。所以我想弄清楚为什么,以及我可以做什么来修复它而不通过sort()对所有内容进行排序,因为这会将内容整理好。我只是想在谈话时重新确定关键。

3 个答案:

答案 0 :(得分:33)

使用array_values()获取原始数组的值并将它们返回到新数组。该新数组将包含新的数字键。

$new_array = array_values($old_array);

答案 1 :(得分:5)

您应该使用array_splice()从数组中删除元素,以便同时按照您希望的方式更改密钥。

您必须对array_values()小心,因为它不会(或至少可能不会)起作用,因为它可能re-order your numeric indexes。如果您在索引3处的值之后添加索引0处的值,则索引0处的值将放置在array_values()返回的数组的末尾,而它首先显示在您的数组中。

答案 2 :(得分:3)

由于键不一定重要,您可以通过array_values()运行最终结果数组。它按所有顺序保留所有值,将所有键重置为连续数值。