$我 - ;迭代器陷入无限循环 - for for php php

时间:2015-08-27 16:01:59

标签: php for-loop infinite-loop

我正在使用一个基本的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--;删除的元素之后的下一个元素进行比较。但是,当我这样做时,我陷入无限循环。有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

递增后递减$i,因此它会始终在01之间切换。

PHP中有一个函数用于您要执行的操作:array_unique()

$array = ['a', 'b', 'c', 'c', 'c', 'd'];

$last = $array[0];
for ($i = 1; $i < count($array); $i++) {
  if ($array[$i]==$last) {
    unset($array[$i]); // delete element
  }
  else $last = $array[$i]; // remember value
}

var_dump($array);

产生

array(4) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" [5]=> string(1) "d" } 
相关问题