在php中产生不重复的随机数的五种方法

方法一:

<?php
$numbers = range (1,50);
//shuffle 将数组顺序随即打乱
shuffle ($numbers);
//array_slice 取该数组中的某一段
$num=6;
$result = array_slice($numbers,0,$num);
print_r($result);
?>

方法二:

<?php
$numbers = range (1,20);
//播下随机数发生器种子,可有可无,测试后对结果没有影响
srand ((float)microtime()*1000000);
shuffle ($numbers);
//跳过list第一个值(保存的是索引)
while (list(, $number) = each ($numbers)) {
echo "$number ";
}
?>

方法三:

<?php
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个不重复的值

方法四:

<?php
$tmp=array();
while(count($tmp)<5){
$tmp[]=mt_rand(1,20);
$tmp=array_unique($tmp);
}
print_r($tmp);
?>

方法五:

<?php
$tmp = range(1,30);
print_r(array_rand($tmp,10));
?>

取人之长,补己之短
时间: 2025-01-07 02:49:49

在php中产生不重复的随机数的五种方法的相关文章

Java中线程等待(同步)的五种方法

在面试时,经常会有面试官问道,一个主线程有多个子线程,如何能使子线程的业务执行完成之后,再执行主线程业务逻辑.对于这个问题,本人能够想到的有五种方法,详细请移步源码 1.使用线程类自带的join方法,将子线程加入到主线程,在子线程执行完之后,在执行主线程逻辑. 例如 public static void joinDemo() throws InterruptedException { System.out.println("=========Test with join=====");

Java中判断字符串是否为数字的五种方法

推荐使用第二个方法,速度最快. 方法一:用JAVA自带的函数 Java代码   public static boolean isNumeric(String str){ for (int i = str.length();--i>=0;){ if (!Character.isDigit(str.charAt(i))){ return false; } } return true; } 方法二: Java代码   /* * 判断是否为整数 * @param str 传入的字符串 * @return

Java中判断字符串是否为数字的五种方法 (转)

推荐使用第二个方法,速度最快. 方法一:用JAVA自带的函数 Java代码   public static boolean isNumeric(String str){ for (int i = str.length();--i>=0;){ if (!Character.isDigit(str.charAt(i))){ return false; } } return true; } public static boolean isNumeric(String str){ for (int i

[转]在计算机程序中,完成重复的任务有两种方式:递归和迭代(循环)。

在计算机程序中,完成重复的任务有两种方式:递归和迭代(循环) 递归的一个例子:从前有座山,山里有座庙,庙里一个老和尚在给小和尚讲故事,内容是“从前有座山,山里有座庙,庙里一个老和尚在给小和尚讲故事,内容是“从前有座山,山里有座庙,庙里一个老和尚在给小和尚讲故事,内容是“...... 循环的一个例子:炉子上有99锅汤,让我不小心喝了一锅,炉子上还有98锅汤;炉子上有98锅汤,让我不小心喝了一锅,炉子上还有97锅汤;炉子上有97锅汤,让我不小心喝了一锅,炉子上还有96锅汤; ...... http:

mysql insert插入时实现如果数据表中主键重复则更新,没有重复则插入的四种方法

[CSDN下载] Powerdesigner 设计主键code不能重复等问题 [CSDN博客] Oracle中用一个序列给两个表创建主键自增功能的后果 [CSDN博客] MySQL自增主键删除后重复问题 [CSDN博客] mysql 主从复制 双主从复制原理 防止主键重复问题(必看) [CSDN博客] replace into导致mysql自增列导致主键重复问题分析 [CSDN博客] 一个循环更新某库所有表所有非主键列的值方法(sql 2005 & mysql) [CSDN博客] mysql i

php生成随机数的三种方法

php生成随机数的三种方法 如何用php生成1-10之间的不重复随机数? 例1,使用shuffle函数生成随机数. <?php$arr=range(1,10);shuffle($arr);foreach($arr as $values){  echo $values." ";}?> 例2,使用array_unique函数生成随机数. <?php$arr=array();while(count($arr)<10){  $arr[]=rand(1,10);  $ar

Struts2中Action取得表单数据的几种方法

Struts2中Action取得表单数据的几种方法 Struts2中Action获得表单数据的几种方法struts2 Action获取表单传值 1.通过属性驱动式JSP: <form action="sys/login.action" method="post"> <input type="text" name="username"> <input type="submit"

关于网页中不刷新页面改变验证码的两种方法

今天做一个注册的页面,需要输入验证码.验证码的生成是动态的,不过要刷新页面,才能改变验证码,因为刷新后浏览器会向服务器提交新的请求,服务器就动态生成新的验证码响应给浏览器.为了能够在不刷新页面的情况下改变验证码,需要JavaScript的支持. 第一种方法是在请求地址后面带参数,这是一个小窍门.因为浏览器访问服务器的时候地址后面可以带上参数一起传给服务器,而加载内容是只看地址不看后面的参数:另外在<img src="地址"/>中,只要浏览器发现地址改变了就会自动重新加载该地

PHP生成随机数的两种方法

这里整理了php生成随机数的二种方法,入门级的php随机数生成代码.: 第一种方法,使用系统自带的函数: srand((double)microtime()*1000000); //随机产生0-99之间的整数 $randval=rand(0,99999999); echo $randval,''; 第二种方法,不只是生成只有数字的随机字符串,更包括了各种特殊字符: function randomkeys($length){ $output=''; for($a=0;$a<$length; $a+