16

出于某种原因,从数组中删除项目时,我留下了 0、2、3、4、6、9 之类的键,而不是 0、1、2、3、4、5。所以我试图找出原因,并且我可以做些什么来修复它,而不用对所有东西进行排序,sort()因为那样会让东西井井有条。我只是想重新输入一个说话的问题。

4

3 回答 3

42

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

$new_array = array_values($old_array);
于 2012-06-09T00:02:26.463 回答
5

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

您必须小心,array_values()因为它不会(或至少可能不会)工作,因为它可能会重新排序您的数字索引。如果在索引 3 的值之后添加索引 0 处的值,则索引 0 处的值将放置在由 返回的数组的末尾array_values(),而它首先出现在您的数组中。

于 2012-06-09T00:28:44.100 回答
3

由于键不一定重要,您可以通过array_values(). 它将所有值按原顺序保留,将所有键重置为顺序数值。

于 2012-06-09T00:02:58.923 回答