无论是Web应用,还是WAP或者移动应用,随机数都有其用武之地。在最近接触的几个小项目中,我也经常需要和随机数或者随机数组打交道,所以,对于PHP如何产生不重复随机数常用的几种方法小结一下

无论是Web应用,还是WAP或者移动应用,随机数都有其用武之地。在最近接触的几个小项目中,我也经常需要和随机数或者随机数组打交道,所以,对于PHP如何产生不重复随机数常用的几种方法小结一下

方法一:

$numbers = range (1,50);

//shuffle 将数组顺序随即打乱

shuffle ($numbers);

//array_slice 取该数组中的某一段

$num=6;

$result = array_slice($numbers,0,$num);

print_r($result);

?>

方法二:

$numbers = range (1,20);

//播下随机数发生器种子,可有可无,测试后对结果没有影响

srand ((float)microtime()*1000000);

shuffle ($numbers);

//跳过list第一个值(保存的是索引)

while (list(, $number) = each ($numbers)) {

echo "$number ";

}

?>

方法三:

function NoRand($begin=0,$end=20,$limit=5){

$rand_array=range($begin,$end);

shuffle($rand_array);//调用现成的数组随机排列函数

return array_slice($rand_array,0,$limit);//截取前$limit个

}

print_r(NoRand());

?>

上述可以在1-20间随机产生5个不重复的值

方法四:

代码如下:

$tmp=array();

while(count($tmp)<5){

$tmp[]=mt_rand(1,20);

$tmp=array_unique($tmp);

}

print_r($tmp);

?>

方法五:

代码如下:

$tmp = range(1,30);

print_r(array_rand($tmp,10));

?>

这个可能是比叫简单的了(ps:如果在range中指定了步长,就必须注意array_rand的第二个参数是否超出$tmp的长度)。

参考链接:http://www.php1.cn/Content/PHP_ChanShengBuZhongFuSuiJiShuDe_5_GeFangFaZongJie.html

PHP产生不重复随机数的5个方法总结的更多相关文章

  1. PHP生成不重复随机数的方法

    无论是Web应用,还是WAP或者移动应用,随机数都有其用武之地.在最近接触的几个小项目中,我也经常需要和随机数或者随机数组打交道,所以,对于PHP如何产生不重复随机数常用的几种方法小结一下. 方法一: ...

  2. C#生成不重复随机数列表

    C#生成不重复(随机数 http://www.jbxue.com/tags/suijishu.html)列表实例的代码.例子: ;             Random rnd = ; i <  ...

  3. PHP:产生不重复随机数的方法

    来源:http://www.ido321.com/1217.html 无论是Web应用,还是WAP或者移动应用,随机数都有其用武之地.在最近接触的几个小项目中,我也经常需要和随机数或者随机数组打交道, ...

  4. JS生成不重复随机数

    说明 我们可以用Math.random()的方法轻松的生成 一个随机的数字,但是这个数字可能是重复的.有时候,我们需要一个不重复的随机数,可以用很多的方法来实现这个要求,以下方法是效率最高的. 解释 ...

  5. PHP中生产不重复随机数的方法

    PHP内置函数不重复随机数        需求:要生成一个数组,这个数组里面有10个元素,都是整形,并且是1-60之间不重复的随机数.  代码: 代码示例: 1 2 3 4 5 6 7 8 9 10 ...

  6. mysql生成不重复随机数(unique number generation)

    转自:http://blog.csdn.net/dreamer2020/article/details/52049629 问题来源 业务中有时会遇到要生成不重复随机数的情况,例如,新生成一个商品编号. ...

  7. 动态生成16位不重复随机数、随机创建2位ID

    /** 1. * 动态生成16位不重复随机数 * * @return */ public synchronized static String generate16() { StringBuffer ...

  8. C#生成指定范围内的不重复随机数

    C#生成指定范围内的不重复随机数 // Number随机数个数 // minNum随机数下限 // maxNum随机数上限 public int[] GetRandomArray(int Number ...

  9. js指定范围指定个数的不重复随机数

    今天偶然看到的 比如要生成 1-100范围之内的10个不重复随机数,代码就可以这么写 var arr = []; for (var i = 1; i <=100; i++) { arr.push ...

随机推荐

  1. vue 详情跳转至列表页 实现列表页缓存

    甲爸爸提了一个需求,希望公众号内的商城能够像app一样,从商品详情页跳转至列表页及其他列表页时,可以实现列表页缓存(数据不刷新.位置固定到之前点的商品的位置) 本来想着scrollBehavior应该 ...

  2. c#菜单动态合并

    说明 在程序中经常使用弹出菜单,并且一个窗体中可以存在多个弹出菜单.开发过MDI窗体的读者可能都知道,当MDI子窗体最大化时,子窗体和主窗体的菜单能够自动的合并.这是如何实现的呢?本例实现了将两个弹出 ...

  3. 微信小程序——获取openGid

    小编使用的Node版本的解密方式(其他方式自行替换写法也是 一样的) 1.到微信小程序官网下载解密demo包 2.获取用户[openid] 3.调用 [wx.showShareMenu] 并且设置 w ...

  4. jQuery插件图片懒加载lazyload

    来自XXX的前言: 什么是ImageLazyLoad技术 在页面上图片比较多的时候,打开一张页面必然引起与服务器大数据量的 交互.尤其是对于高清晰的图片,占的几M的空间.ImageLazyLoad技术 ...

  5. 百万年薪python之路 -- 面向对象之继承

    面向对象之继承 1.什么是面向对象的继承 继承(英语:inheritance)是面向对象软件技术当中的一个概念. 通俗易懂的理解是:子承父业,合法继承家产 专业的理解是:子类可以完全使用父类的方法和属 ...

  6. travis-ci + php + casperjs 持续集成

    .travis.yml 文件添加内容: sudo: required language: php php: - 5.5 before_script: - npm install -g casperjs ...

  7. VS Code断点调试PHP超详细萌新教程

    AppServ安装 1. 下载 2. 安装,一路默认设置顺便设置sql密码即可.这里建议不要修改端口,后续教程默认80端口. 3.点我测试,有下图则恭喜你AppServ安装完成. Xdebug配置 1 ...

  8. json基础用法

    JSON格式 JSON格式(JavaScript Object Notation的缩写)是一种用于数据交换的文本格式,2001年由Douglas Crockford提出,目的是取代繁琐笨重的XML格式 ...

  9. SpringBootCLI 命令行工具

    Spring Boot CLI 是用于快速开发 Spring 应用的命令行工具.用来运行 Groovy (与 Java 风格类似)脚本. spring-cli 似乎不是可以各种diy spring-b ...

  10. linux 安装swoole

    1.首先我们要安装swoole扩展的话,需要把它的包下载下来,下载地址是: https://github.com/swoole/swoole-src 2.下载下来之后进行解压: unzip swool ...