【发布时间】:2015-08-27 16:01:58
【问题描述】:
我正在使用带有递增迭代器的基本 for 循环来检查重复项:
$array = ['a', 'b', 'c', 'c', 'c', 'd'];
for ($i = 0; $i < $length-1; $i++) {
if ($array[$i] == $array[$i + 1]) {
//delete $array[$i + 1]
$i--;
}
}
我想将所有元素与数组中的下一个元素进行比较。如果有重复项,我有一个帮助函数来删除它,但随后想将$i 重置回一个,以再次将其与使用$i--; 删除的元素之后的下一个元素进行比较。但是,当我这样做时,我陷入了无限循环。有谁知道如何解决这个问题?
【问题讨论】:
-
如果
$i为0,你加1++再减1--,那么$i是什么? -
它被卡住了,因为
for增加了 1,而你的$i--;减少了 1。所以它实际上永远不会增加。它对每一次 迭代执行此操作,而不仅仅是数组匹配的位置。 -
对不起!我的意思是它在
for循环中 - 现在会更新。
标签: php for-loop infinite-loop