Случайное число в диапазоне [min - max] с использованием PHP

Есть ли способ генерировать случайное число, основанное на min и max?

Например, если min равно 1 и max 20, он должен генерировать любое число от 1 до 20, включая 1 и 20?

Ответ 1

<?php
  $min=1;
  $max=20;
  echo rand($min,$max);
?>

Ответ 2

быстрее быстрее будет использовать mt_rand:

$min=1;
$max=20;
echo mt_rand($min,$max);

Источник: http://www.php.net/manual/en/function.mt-rand.php.

ПРИМЕЧАНИЕ.. Для работы вашего сервера должен быть включен модуль Math PHP. Если это не так, включите его хост, или вы должны использовать обычный (и более медленный) rand().

Ответ 5

rand(1,20)

Документы для функции rand PHP находятся здесь:

http://php.net/manual/en/function.rand.php

Используйте функцию srand() для установки начального значения генератора случайных чисел.

Ответ 6

Я собрал ответы здесь и сделал его независимым от версии;

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
}

Ответ 7

Попробуйте этот. Он будет генерировать идентификатор согласно вашему желанию.

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;
}