@alexnovice

Пройтись по строке и если есть одинаковый символ, exit?

Есть строка "1234"
Взять первый символ "1", поискать в "234", если нет совпадений, ок.
Взять второй символ "2", пройтись по "134", если нет совпадений, ок.
И так со всеми.
Вообщем надо чтоб строка, не содержала одинаковых цифр.
Не рандом,а именно проверка.

Примерно так:
$arr = "1134";
for($i=0;$i<4;$i++){
	if($arr[$i] == $arr[$i+1]) {
		echo "Одинаковые числа";
		exit;
	}
}


Ну что то не соображу как правильно сделать, что бы работало.
Мой криворукий код будет true, если будет строка "4234", но тут ошибка, т.к. два раза "4"

Спасибо за помощь!
  • Вопрос задан
  • 93 просмотра
Решения вопроса 1
Stasgar
@Stasgar
Обученная макака
function allUnique($str) {
    $strUniqueChars = count_chars($str,3); // 3 - режим, возвращается строка без повторений символов
     /* Если строка без повторений по длине равна изначальной
     * значит повторений изначально и не было */
    return strlen($str) === strlen($strUniqueChars);
}

var_dump( allUnique('1234') ); // bool(true)
var_dump( allUnique('41234') ); // bool(false)

PHP docs: count_chars
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Flying
К примеру эта задача вполне себе решается через регулярное выражение, можно проверить здесь.
Ответ написан
@maxus01
начинающий программист
Отсортировать символы в строке.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы