随机数在范围使用PHP

有没有办法根据最小和最大生成一个随机数?

例如,如果min是1,最多20,它应该产生1到20之间的任何数字,包括1和20?

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

更快的版本将使用mt_rand:

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

资料来源: http : //www.php.net/manual/en/function.mt-rand.php 。

注:您的服务器需要启用mathPHP模块才能正常工作。 如果没有,请启动主机,或者使用正常的(和较慢的)rand()。

在新的PHP7中 ,最终支持密码安全的伪随机整数。

 int random_int ( int $min , int $max ) 

random_int – 生成密码安全的伪随机整数

这基本上使以前的答案过时了。

 (rand() % ($max-$min)) + $min 

要么

 rand ( $min , $max ) 

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

 rand(1,20) 

PHP的rand函数的文档在这里:

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