PHP中随机产生一组不重复的数字实现程序
发布:smiling 来源: PHP粉丝网 添加日期:2014-01-05 21:52:19 浏览: 评论:0
随机产生数字往往应用在随机的密码或随机验证码之类上面,PHP中有rand()干扰函数和MD5来实现,下面我们来看一下结合PHP函数来产生一组不重复的数字数组是如何用程序来实现的,直接上代码:
- <?php
- /**
- * PHP获取一组随机数字不重复
- */
- $a = microtime();
- function createRandID($m){
- // 产生一个从1到$m的数组
- $arr = range(1,$m);
- // 打乱数组
- shuffle ($arr);
- // 取前十个
- for($i=0;$i<=10;$i++){
- // 赋值给新数组$n
- $n[] = $arr[$i];
- }
- // 返回这组数字
- return implode($n,',');
- }
- echo createRandID(700000);
- echo '<br />';
- echo $a - microtime();
- ?>
执行结果:
560875,593409,325987,658308,248054,205426,375413,676243,485853,575393,115975
0.672761
由以上结果可以看到,时间花了0.6,我们把随机数范围从700000调到900000再看看执行结果:Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 7200000 bytes) in /data0/htdocs/www/a.php on line 10
数组太大程序跑不下了,代码如下:
- <?php
- /**
- * PHP获取一组随机数字不重复
- * PHP博客
- */
- $a = microtime();
- function createRandID($m){
- // 注意,要先声明一个空数组,否则while里的in_array会报错
- $arr = array();
- // 使用while循环,只要不够10个就永远循环
- while(count($arr)<=10){
- // 产生一个随机数
- $a = rand(1,$m);
- // 判断:如果产生的随机数不再数组里就赋值到数组里
- // 主要避免产生重复的数字
- if(!in_array($a,$arr)){
- // 把随机数赋值到数组里
- $arr[] = $a;
- }
- }
- // 返回产生的随机数字
- return implode($arr,',');
- }
- echo createRandID(700000);
- echo '<br />';
- echo $a - microtime();
- ?>
执行结果:
308326,155128,280424,493174,214855,219990,482837,66329,512934,232527,3869750.00015699999999996
由以上执行结果可以看到,时间根本可以忽略不计,我们把随机数范围从700000调到999999再看看执行结果
392281,822956,401282,176255,143076,501802,393338,546922,21836,601991,3620060.00013600000000002
执行结果跟最大取数值设置都没有丝毫关系,还是跑的挺快!
Tags: 随机 产生 不重复 数字
- 上一篇:php获取google当前天气实现程序
- 下一篇:php实现中文文件名文件下载
相关文章
- ·php生成随机密码的几种方法(2013-11-13)
- ·php生成字符串随机码实现方法(2013-12-19)
- ·php随机密码生成程序(2013-12-27)
- ·PHP生成随机字符串程序代码(2014-01-06)
- ·php生成多个不重复的随机数实例程序(2014-01-08)
- ·php中生成随机密码几种方法(2014-01-15)
- ·php指定范围内多个随机数(2014-01-18)
- ·php生成随机密码一些方法总结(2014-02-22)
- ·php rand() 随机数生成的方法介绍(2014-03-22)
- ·php从数组中随机抽取一个或多个单元办法(2014-09-18)
- ·php实现mysql数据库随机重排例子(2015-04-06)
- ·PHP 时间种子 批量 随机数的例子(2015-04-08)
- ·php按照权重随机排序数据的例子(2015-04-08)
- ·再整理一个php 产生不重复随机数5个方法(2015-04-09)
- ·PHP随机生成几组不同的数据实现发红包功能(2016-01-01)
- ·PHP获取随机数的方法(2018-08-06)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)