1. 云栖社区>
  2. 技术文集>
  3. 列表>
  4. 正文

php使用codebase生成随机数

作者:用户 来源:互联网 时间:2016-03-26 14:59:22

重复数组函数随机数生成投票生成随机数随机函数速度N个不重复php生成数组php数组去重复php生成随机数php数组去除重复不重复随机数组

php使用codebase生成随机数 - 摘要: 本文讲的是php使用codebase生成随机数,  这篇文章主要介绍了php使用codebase生成随机数的示例,需要的朋友可以参考下 有25幅作品拿去投票,一次投票需要选16幅,单个作品一次投票只能选择一次。前面有个程序员捅了漏子,忘了把投

 这篇文章主要介绍了php使用codebase生成随机数的示例,需要的朋友可以参考下

有25幅作品拿去投票,一次投票需要选16幅,单个作品一次投票只能选择一次。前面有个程序员捅了漏子,忘了把投票入库,有200个用户产生的投票序列为空。那么你会如何填补这个漏子?   当然向上级反映情况。但是我们这里讨论的是技术,就是需要生成1-25之间的16个不重复的随机数,去填补。具体怎么设计函数呢?将随机数存入数组,再在数组中去除重复的值,即可生成一定数量的不重复随机数。   程序如下:    代码如下: <?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; }   $arr = unique_rand(1, 25, 16); sort($arr);   $result = ''; for($i=0; $i < count($arr);$i++) {  $result .= $arr[$i].','; } $result = substr($result, 0, -1); echo $result; ?>       程序运行如下:    代码如下: 2,3,4,6,7,8,9,10,11,12,13,16,20,21,22,24     补充几点说明:   生成随机数时用了 mt_rand() 函数。这个函数生成随机数的平均速度要比 rand() 快四倍。 去除数组中的重复值时用了“翻翻法”,就是用 array_flip() 把数组的 key 和 value 交换两次。这种做法比用 array_unique() 快得多。 返回数组前,先使用 shuffle() 为数组赋予新的键名,保证键名是 0-n 连续的数字。如果不进行此步骤,可能在删除重复值时造成键名不连续,给遍历带来麻烦。  

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索重复 , 数组 , 函数 , 随机数 , 生成 , 投票 , 生成随机数 , 随机函数速度 , N个不重复 , php生成数组 , php数组去重复 , php生成随机数 , php数组去除重复 不重复随机数组 php 生成随机数、php 生成不重复随机数、php生成10位随机数、php 生成6位随机数、php 生成唯一随机数,以便于您获取更多的相关知识。

前三篇
后三篇
稳定可靠、可弹性伸缩的在线数据库服务,全球最受欢迎的开源数据库之一

6款热门基础云产品6个月免费体验;2款产品1年体验;1款产品2年体验

弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率

开发者常用软件,超百款实用软件一站式提供