Проверка переменной на уникальность

163
21 апреля 2022, 06:10

Необходимо создать рандомное число из 10-15 символов, при этом чтобы последующий символ в строке не дублировал предыдущий. Допустим 01020102 - верно, 011020100 - не верно.

Вопрос скорее всего детский, но и я не сеньор, поэтому я задаю его здесь.

Для реализации (костылизации) данной задачи я было подумал, что мне достаточно просто генерить 10 рандомных однозначных чисел и потом склеивать их в одну строку, но найти функции для проверки на уникальность сравнивая с прошлой переменной я не смог.

Буду очень благодарен за подсказку как это сделать и быть может моя логика совершенно не верна и есть более простой и действенный метод генерации любых чисел без повторений подряд в строке.

Answer 1

Для написания такого кода не нужно быть senior, достаточно базово знать PHP. Ну или честно признаться, что это задание в школе/институте по дисциплине веб-программирование

<?php
$str = ""; //выходная строка
$len = rand(10,15); //длина от 10 до 15 сиволов
while ( mb_strlen( $str ) < $len ) {
  $num = rand(0,9);  //рандомно берем число от 0 до 9
  //если строка пустая или ее последний символ не равен полученному рандомному числу
  if ( mb_strlen( $str ) == 0 || intval( mb_substr( $str, mb_strlen( $str ) - 1, 1 ) ) != $num ) {
      $str .= $num; //добавляем в конец строки полученное рандомное число
  }
}
echo $str."\n";
READ ALSO
Ошибка Column count doesn&#39;t match value count at row 1

Ошибка Column count doesn't match value count at row 1

При добавление записи в бд возникает ошибка, может кто-нибудь помочь её исправить? "Ошибка Column count doesn't match value count at row 1"

126
Совмещение PHP и JS

Совмещение PHP и JS

Необходимо совместить php и js кодНеобходимо сделать так, чтобы запросы в БД отправлялись только после возникновения события копирования информации...

152
PhpSpreadsheet: распределить строку по ячейкам

PhpSpreadsheet: распределить строку по ячейкам

Есть excel таблица и некоторая строка, нужно определить поместится ли она в первую ячейку (верхняя желтая) и если нет, то разбить ее по строчкам...

140
Проблема с кукой JSESSIONID при повторном запросе

Проблема с кукой JSESSIONID при повторном запросе

Кидаю гет запрос, чтобы установить новый сеанс и записать куки в файл

103