Php 在使用unset()之后,如何重新索引数组?
使用Php 在使用unset()之后,如何重新索引数组?,php,arrays,unset,Php,Arrays,Unset,使用unset()后,我在丢失数组顺序方面遇到了一些问题。这是我正在使用的代码 $id = $_GET['id']; for ($i = 0; $i < count($my_array); $i++) { if ($my_array[$i] == $id) { unset($my_array[$i]); } } $id=$\u GET['id']; 对于($i=0;$i
unset()
后,我在丢失数组顺序方面遇到了一些问题。这是我正在使用的代码
$id = $_GET['id'];
for ($i = 0; $i < count($my_array); $i++) {
if ($my_array[$i] == $id) {
unset($my_array[$i]);
}
}
$id=$\u GET['id'];
对于($i=0;$i
假设$my_array
有4个项目,$my_array[1]
等于$id
。取消设置后,我在$my_array
上循环,得到一个未定义的偏移量:1错误。使用print\r($my\u array)
,我得到$my\u array[0]
,$my\u array[2]
,和$my\u array[3]
我完全理解为什么会这样。是否有一种方法可以重新索引数组,使项目2“下降”到项目1,其余的项目分别下降到数组的末尾
像
reindex($my_array)
这样的东西会很好。我知道我可以用一个新的数组运行另一个for循环并手动传输它们,但一步解决方案会很棒。我在任何地方都找不到任何东西。调用以重新索引数组。调用以重新索引数组。我刚刚发现您还可以
array_splice($ar, 0, 0);
这会在原地重新编制索引,这样您就不会得到原始数组的副本。我刚刚发现,您还可以执行
array_splice($ar, 0, 0);
这会在原地重新建立索引,这样你就不会得到原始数组的副本。伙计,你太棒了。虽然我已经试过了。我们只能怪这一次是凌晨2点以后;)谢谢again@Adam好了,现在已经早上7点多了:p我想我也要睡觉了。@Adam顺便说一下,在
取消设置之后,你可以用foreach迭代现在的单元素短数组。如果因为要使用for循环进行迭代而重新编制索引,那么这是不必要的;只需使用foreach
或reset
和next
。是的,我知道我可以再做两个步骤,这样做,但数组_值似乎正是我所需要的。是的,早上7点听起来像是一个很好的停车点:Pdude you rock。虽然我已经试过了。我们只能怪这一次是凌晨2点以后;)谢谢again@Adam好了,现在已经早上7点多了:p我想我也要睡觉了。@Adam顺便说一下,在取消设置之后,你可以用foreach迭代现在的单元素短数组。如果因为要使用for循环进行迭代而重新编制索引,那么这是不必要的;只需使用foreach
或reset
和next
。是的,我知道我可以再做两个步骤,这样做,但数组_值似乎正是我所需要的。是的,早上7点听起来是个不错的停车点:P