php如何生成不重复数字

  • 来源:网络
  • 更新日期:2020-07-10

摘要:php生成不重复数字的方法是:可以通过mt_rand()函数来实现。函数语法:【mt_rand(min,max)】,例如【mt_rand(10,100)】,表示生成一个介于10和100之间(包括10和100)的随机整数。要生

php生成不重复数字的方法是:可以通过mt_rand()函数来实现。函数语法:【mt_rand(min,max)】,例如【mt_rand(10,100)】,表示生成一个介于10和100之间(包括10和100)的随机整数。

要生成不重复数字,可以通过使用mt_rand()函数来实现。
(推荐教程:php教程)

函数介绍:

mt_rand() 函数使用 Mersenne Twister 算法生成随机整数。

例如:

如果您想要一个介于 10 和 100 之间(包括 10 和 100)的随机整数,请使用 mt_rand (10,100)。

函数语法:

mt_rand();
or
mt_rand(min,max);

参数介绍:

min 可选。规定返回的最小数。默认是 0。

max 可选。规定返回的最大数。默认是 mt_getrandmax()。

代码实现:

<?php
/*
* array unique_rand( int $min, int $max, int $num )
* 生成一定数量的不重复随机数,指定的范围内整数的数量必须
* 比要生成的随机数数量大
* $min 和 $max: 指定随机数的范围
* $num: 指定生成数量
*/
function unique_rand($min, $max, $num) {
  $count = 0;
  $return = array();
  while ($count < $num) {
    $return[] = mt_rand($min, $max);
    $return = array_flip(array_flip($return));
    $count = count($return);
  }
  //打乱数组,重新赋予数组新的下标
  shuffle($return);
  return $return;
}

//生成10个1到100范围内的不重复随机数
$arr = unique_rand(1, 100, 10);
echo implode($arr, ",");
?>