最新公告
  • 欢迎您光临站长源码网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • php怎么不重复随机数

    正文概述 管理员   2024-08-27   7

    在 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怎么不重复随机数

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    支付宝支付
    余额支付
    ×
    微信扫码支付 0 元