php怎么不重复随机数
时间 : 2023-04-24 23:36:02声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性
在 PHP 中,要生成不重复的随机数可以使用循环或递归方式来实现。以下是一些简单的实现方法。
1. 使用数组存储已生成的随机数
可以使用一个数组来存储已经生成的随机数。在生成每个新的随机数时,检查该数组中是否已经存在该随机数,如果已经存在则继续生成新的随机数,否则将其添加到数组中。
```php
$max = 10; // 生成的随机数最大值
$count = 5; // 生成的随机数个数
$numbers = array(); // 存储已生成的随机数
while (count($numbers) < $count) {
$number = mt_rand(1, $max);
if (!in_array($number, $numbers)) {
$numbers[] = $number;
}
}
// 输出生成的随机数
echo implode(', ', $numbers);
2. 使用数组键值存储已生成的随机数
与第一种方法类似,但是使用数组的键值来存储已经生成的随机数,并通过检查数组键是否存在来判断是否已经生成了该随机数。
```php
$max = 10; // 生成的随机数最大值
$count = 5; // 生成的随机数个数
$numbers = array(); // 存储已生成的随机数
while (count($numbers) < $count) {
$number = mt_rand(1, $max);
if (!isset($numbers[$number])) {
$numbers[$number] = true;
}
}
// 输出生成的随机数
echo implode(', ', array_keys($numbers));
3. 在指定范围内随机取值
如果需要生成的随机数个数不是很大,也可以考虑直接生成在指定范围内的随机数,并将其存储在数组中。可以使用 `range()` 函数生成指定范围的数组,再使用 `array_rand()` 函数从该数组中随机取出指定个数的值。
```php
$max = 10; // 生成的随机数最大值
$count = 5; // 生成的随机数个数
// 生成指定范围的数组
$numbers = range(1, $max);
// 从数组中随机取出指定个数的值
$random_keys = array_rand($numbers, $count);
// 输出生成的随机数
foreach ($random_keys as $key) {
echo $numbers[$key] . ' ';
}
以上是几种常见的生成不重复的随机数的方法。根据具体的使用场景和需求,选择合适的方法来实现即可。
在PHP中,如果想要生成不重复的随机数可以有多种方法,下面介绍其中的两种:
1. 使用PHP内置的函数range()和shuffle()
range()函数可以生成一个指定范围内的数组,shuffle()函数可以将数组随机打乱,这样我们就可以保证生成的随机数不重复。下面是一个示例代码:
```php
$numbers = range(1, 100);
shuffle($numbers);
for ($i = 0; $i < 10; $i++) {
echo $numbers[$i] . '<br>';
}
这段代码会生成一个1到100的数组,然后将数组打乱,最后输出前10个元素作为随机数。
2. 使用PHP的mt_rand()和in_array()函数
mt_rand()函数是PHP中的一个内置函数,可以用于生成指定范围内的随机数。in_array()函数可以用于判断一个值是否在数组中。我们可以使用这两个函数来生成一组不重复的随机数。下面是一个示例代码:
```php
$numbers = array();
$i = 0;
while ($i < 10) {
$num = mt_rand(1, 100);
if (!in_array($num, $numbers)) {
array_push($numbers, $num);
$i++;
}
}
foreach ($numbers as $number) {
echo $number . '<br>';
}
这段代码会生成10个1到100之间的随机数,每次生成随机数之后使用in_array()函数判断该随机数是否已经存在于数组中,如果不存在就将该随机数添加到数组中,最终输出结构。
上一篇
php怎么随机数不重复
下一篇
php怎么转大数据类型
https/SSL证书广告优选IDC>>
推荐主题模板更多>>
推荐文章