Random number in range [min - max] using PHP

2019-02-02 19:14发布

Is there a way to generate a random number based on a min and max?

For example, if min was 1 and max 20 it should generate any number between 1 and 20, including 1 and 20?

7条回答
劫难
2楼-- · 2019-02-02 19:25

I have bundled the answers here and made it version independent;

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
}
查看更多
我命由我不由天
3楼-- · 2019-02-02 19:27
<?php
  $min=1;
  $max=20;
  echo rand($min,$max);
?>
查看更多
闹够了就滚
4楼-- · 2019-02-02 19:27

A quicker faster version would use mt_rand:

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

Source: http://www.php.net/manual/en/function.mt-rand.php.

NOTE: Your server needs to have the Math PHP module enabled for this to work. If it doesn't, bug your host to enable it, or you have to use the normal (and slower) rand().

查看更多
We Are One
5楼-- · 2019-02-02 19:29
(rand() % ($max-$min)) + $min

or

rand ( $min , $max )

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

查看更多
趁早两清
6楼-- · 2019-02-02 19:30

In a new PHP7 there is a finally a support for a cryptographically secure pseudo-random integers.

int random_int ( int $min , int $max )

random_int — Generates cryptographically secure pseudo-random integers

which basically makes previous answers obsolete.

查看更多
ら.Afraid
7楼-- · 2019-02-02 19:34
rand(1,20)

Docs for PHP's rand function are here:

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

Use the srand() function to set the random number generator's seed value.

查看更多
登录 后发表回答