Задать вопрос
@BjornBorn

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

Нужно создать функцию, которая параметром будет принимать массив и проверять, есть ли в этом массиве два одинаковых элемента подряд.

$array = [2, 3, 6, 8, 8,];

function check($arr): bool
{
    for ($i = 0; $i < count($arr); $i++) {
        if ($arr[$i] == $arr[$i+1]) {
            return true;
        }
    }
    return false;
}


Но если в массиве нет одинаковых элементов подряд, то PHP показывает предупреждение:
Warning: Undefined array key 5 in C...
  • Вопрос задан
  • 134 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
Wispik
@Wispik
надо
$i < count($arr) - 1
потому что дальше в сравнении $i+1, отсюда и ошибка была (выход за пределы массива)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
И стоит сделать строгую проверку равенства, иначе возможны всякие приколы
var_dump(check(['привет', true])); // bool(true)
var_dump(check([true, 1])); // bool(true)
var_dump(check([1, 'привет'])); // bool(false)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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