Задать вопрос
@0ldn0mad

Как проверить массив, что два числовых элемента подряд одинаковы?

Например, дан массив - $arr [4,12,73,8,1,1,36,7,6,22,22,3]
Каким условием можно проверить, существуют ли в данном массиве идущие подряд числа.
В нашем случае такие пары есть - 1,1 и 22,22
А какое условие поставить для проверки?
  • Вопрос задан
  • 1971 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 1
@DanKud
$arr = [4,12,73,8,1,1,36,7,6,22,22,3];

for ($i = 0; $i < count($arr); $i++) {
    if ($i && $arr[$i] == $arr[($i-1)]) {
        echo 'есть идущие подряд: '.$arr[$i].' - '.$arr[$i].'<br>';
    }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
пройтись циклом и сравнить
Ответ написан
Комментировать
@ZZiliST
Изучаю JS, CSS, HTML, PHP
<?$lastEl;?>
<?foreach($arr as $el){	
	if($lastEl == $el){
		echo ("Одинаковые");
	}else{
		echo ("Разные");
	}
	$lastEl = $el;
}?>
Ответ написан
Комментировать
0xD34F
@0xD34F
Устанавливаем только факт наличия повторений:

$repeated = false;

for ($i = 1; $i < count($arr) && !$repeated; $i++) {
  $repeated = $arr[$i] === $arr[$i - 1];
}

printf('повторения %s', $repeated ? 'есть' : 'отсутствуют');

Или, выводим, кто и где повторяется:

foreach ($arr as $i => $n) {
  if ($i && $n === $arr[~-$i]) {
    echo "по индексу $i повторяется значение $n\n";
  }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы