我在使用unset()后失去数组顺序时遇到了一些麻烦。下面的代码第一:PHP未设置+未定义偏移
$id = $_GET['id'];
for($i = 0; $i < count($my_array); $i++)
{
if($my_array[$i] == $id)
{
unset($my_array[$i]);
}
}
假设$ my_array有4个项目和$ my_array [1]等于$ ID。在我解决之后,我尝试在$ my_array上运行一个foreach(),并获取和未定义偏移:1错误。当我运行print_r($ my_array)时,我得到$ my_array [0],$ my_array [2]和$ my_array [3]。
我完全理解为什么会发生这样的事情,我的问题是,是否有一种重新索引数组的方法,使项目2'下降'到项目1,其余项目分别到数组的末尾?
像reindex($ my_array)会很甜。我知道我可以用一个新阵列来运行另一个循环并手动传输它们,但是一步解决方案会非常棒。我什么都找不到。
老兄你摇滚。虽然我已经尝试过了。我们只是责备这一个是在凌晨2点以后;) 再次感谢 – 2010-08-01 06:13:17
@亚当那么,已经过了7点在这里:我想我也会去睡觉。 – Artefacto 2010-08-01 06:19:32
@Adam顺便说一句,在'unset'之后,你可以用foreach迭代现在一个元素短的数组。如果因为要迭代for循环而重新索引,则不必要;只需使用'foreach'或'reset'和'next'即可。 – Artefacto 2010-08-01 06:29:15