PHP如何生成指定范围内的N个不重复的随机数?

PHP生成指定范围内的N个不重复的随机数的方法:首先把指定范围内的数值存进数组;然后再使用【shuffle($array)】打乱这个数组;最后再截取其中一定数量的值即可。

PHP如何生成指定范围内的N个不重复的随机数?

PHP生成指定范围内的N个不重复的随机数的方法:

思路:将生成的随机数存入数组,再在数组中去除重复的值,即可生成一定数量的不重复随机数。

在PHP网站开发中,有时候我们需要生成指定范围内一定数量的不重复随机数,具体怎么设计这个生产随机数的函数呢?我们可以将随机产生的数存入数组,但在存入的同时去除重复的值,即可生成一定数量的不重复随机数。当然也可以把指定范围内的数值存进数组,再使用shuffle($array)打乱这个数组,然后再截取其中一定数量的值。但后面的一种做法在指定的随机数范围太大的时候会产生一个较大的数组。

相关学习推荐:PHP编程从入门到精通

立即学习“PHP免费学习笔记(深入)”;

下面给出第一种做法的代码,第二种做法更简单,大家可以尝试下,其实也差不多

<?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 

登录后复制

程序运行如下:

48,5,19,36,63,72,82,77,46,16

补充几点说明:

1、生成随机数时我们用了 mt_rand() 函数。这个函数生成随机数的平均速度要比 rand() 快几倍。

2、去除数组中的重复值时用了“翻转法”,就是用 array_flip() 把数组的 key 和 value 交换两次。这种做法在去除数组重复值的同时效率也比用 array_unique() 快得多。

3、返回数组前,先使用 shuffle() 为数组赋予新的键名,保证键名是 0-n 连续的数字。如果不进行此步骤,可能在删除重复值时造成键名不连续,如果用for遍历的时候会有问题,但如果用foreach或不需要遍历的时候可以不需要shuffle。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

以上就是PHP如何生成指定范围内的N个不重复的随机数?的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2134107.html

(0)
上一篇 2025年2月24日 23:54:55
下一篇 2025年2月17日 23:35:17

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • php base64乱码怎么办

    php base64乱码是因为有一些中文字符,用GET形式传过来的时候,“+”号会被替换成空格而导致乱码的,其解决办法就是进行替换再解密即可。 PHP base64编码后解码乱码的解决办法 这篇文章主要介绍了PHP base64编码后解码乱…

    2025年2月24日
    200
  • php环境搭建的一键安装包有哪些?

    php环境搭建的一键安装包有:1、XAMPP是一款功能强大的一键安装环境;2、PhpStudy是支持Win10并且对于PHP7的支持也是不错;3、Appserv是一款在Windows下的PHP一键安装环境。 php环境搭建的一键安装包有: …

    2025年2月24日 编程技术
    200
  • php按钮页面跳转页面的实现方法

    php按钮跳转页面的实现方法:首先创建一个代码示例文件;然后输入语句“echo “”;最后在浏览器中执行该文件即可。 页面跳转一般是在静态页面做,php主要做功能开发。 如果真是要用php实现,可以试试下面方法: <?ph…

    2025年2月24日
    200
  • 解决解密PHP加密文件后汉字乱码的方法

    解密PHP加密文件后汉字乱码的解决方法:1、需要再次上传解密后的文件再次解密;2、查看编辑器对中文是否支持,并修改编辑器设置即可解决。 一种情况是部分文件可能加密了两次,解密后仍然为加密状态,您需要再次上传解密后的文件再次解密。 另一种情况…

    2025年2月24日
    200
  • ubuntu php curl安装的步骤方法

    ubuntu php curl安装的方法:首先打开终端窗口;然后输入命令“# sudo apt-get install curl libcurl3 libcurl3-dev php7.0-curl”并执行即可安装完成。 ubuntu 16.…

    2025年2月24日
    200
  • php怎么修改ini文件

    php修改ini文件的方法:首先在PHP目录文件下找到并打开“php.ini”文件;然后按住“ctrl+F”快捷键找到需要修改的配置项;接着去掉配置项前面的注释;最后修改需要的数值并保存即可。 php修改ini文件 找到php.ini文件,…

    2025年2月24日
    200
  • php不显示html怎么办

    php不显示html是因为没有关闭标签导致的,其解决办法就是重新写入完整的html代码为“ .class{backgroundcolor:red;}”即可。 php中的html代码无法显示 问题代码如下: .class{background…

    2025年2月24日
    200
  • 解决 IIS php无法找到该页的问题

    php无法找到该页的解决办法:首先找到并打开“Internet服务管理器”项;然后在其左边的“WEB服务扩展”中设置ISAPI扩展允许,以及Active Server Pages允许;最后保存设置即可。 解决 IIS php无法找到该页的问…

    2025年2月24日
    200
  • php怎么替换imgsrc地址参数

    php替换imgsrc的方法:首先定义一个“get_img_thumb_url”方法;然后通过正则替换Img中src地址参数;最后将图片地址替换成压缩URL即可。 PHP实现用正则替换Img中src地址参数 在实际开发过程,我们往往需要PH…

    2025年2月24日
    200
  • php如何设置关闭页面刷新?

    php设置关闭页面刷新的方法:首先使用【location.reload()】函数;然后输入html代码【JS代码:】 php设置关闭页面刷新的方法: 1、在实际应用的时候,重新刷新页面的时候,我们通常使用: location.reload(…

    2025年2月24日 编程技术
    200

发表回复

登录后才能评论