Случайное число в диапазоне [min-max] с использованием PHP
есть ли способ генерировать случайное число на основе min и max?
например, если min был 1 и max 20, он должен генерировать любое число между 1 и 20, включая 1 и 20?
7 ответов
новая PHP7 есть, наконец, поддержка криптографически безопасные псевдослучайные целые числа.
int random_int ( int $min , int $max )
random_int-генерирует криптографически безопасные псевдослучайные целые числа
что в основном делает предыдущие ответы устаревшими.
на быстрее быстрая версия будет использовать mt_rand:
$min=1;
$max=20;
echo mt_rand($min,$max);
источник:http://www.php.net/manual/en/function.mt-rand.php.
Примечание: для этого на вашем сервере должен быть включен модуль PHP Math. Если это не так, ошибка вашего хоста, чтобы включить его, или вы должны использовать нормальный (и медленнее) слчис().
rand(1,20)
документы для функции RAND PHP находятся здесь:
http://php.net/manual/en/function.rand.php
использовать srand()
функция для установки начального значения генератора случайных чисел.
Я собрал ответы здесь и сделал его независимым от версии;
function generateRandom($min = 1, $max = 20) {
if (function_exists('random_int')):
return random_int($min, $max); // more secure
elseif (function_exists('mt_rand')):
return mt_rand($min, $max); // faster
endif;
return rand($min, $max); // old
}
попробуйте этот. Он будет генерировать id в соответствии с вашим желанием.
function id()
{
// add limit
$id_length = 20;
// add any character / digit
$alfa = "abcdefghijklmnopqrstuvwxyz1234567890";
$token = "";
for($i = 1; $i < $id_length; $i ++) {
// generate randomly within given character/digits
@$token .= $alfa[rand(1, strlen($alfa))];
}
return $token;
}