遇到了一个小障碍,想知道是否有“最佳实践”方式来解决它。
所以我刚刚了解到“无论如何,一个 php foreach 都将在整个数组上执行。测试取消设置迭代中的下一个值。它将在偏移量上进行迭代,但该值将为空。 – Kevin Peno 2009 年 12 月 22 日 21 :31" 来自如何在 foreach 循环中删除数组元素?
这是让我感到困惑的第一部分。我正在使用 foreach 遍历一个数组。这是一个搜索功能,所以我要删除我刚刚搜索的元素,所以当循环再次运行时,它会减去那个元素。
如果可能的话,我不想重新索引,尽管如果必须的话,我可以。
Array
(
[0] => Array
(
[0] => a
[1] => aa
[2] => aaa
)
[1] => Array
(
[0] => b
[1] => bb
[2] => bbb
)
[2] => Array
(
[0] => c
[1] => cc
[2] => ccc
)
[3] => Array
(
[0] => d
[1] => dd
[2] => ddd
)
)
foreach($array as $key=>$value) {
$searchresult[] = search function returns various other keys from array
foreach($searchresult as $deletionid) {
unset($array[$deletionid]);
}
}
因此,在第一次迭代中,它显然使用了 $array[0],但 $searchresults 可能会返回 4、5、6、7。所以这些键从 $array 中删除。
然而 foreach 循环仍然遍历这些并给我返回一堆空数组。
我确实读过PHP 'foreach' 是如何工作的?我得到了一些。
谢谢