php生成随机数的三种方法
如何用php生成1-10之间的不重复随机数?
例1,使用shuffle函数生成随机数。
<?php
$arr=range(1,10);
shuffle($arr);
foreach($arras$values)
{
echo$values."";
}
?>
例2,使用array_unique函数生成随机数。
<?php
$arr=array();
while(count($arr)<10)
{
$arr[]=rand(1,10);
$arr=array_unique($arr);
}
echoimplode("",$arr);
?>
例3,使用array_flip函数生成随机数,可以去掉重复值。
<?php
$arr=array();
$count1=0;
$count=0;
$return=array();
while($count<10)
{
$return[]=mt_rand(1,10);
$return=array_flip(array_flip($return));
$count=count($return);
}//www.nhooo.com
foreach($returnas$value)
{
echo$value."";
}
echo"<br/>";
$arr=array_values($return);//获得数组的值
foreach($arras$key)
echo$key."";
?>
php随机数生成函数示例
<?php
functionrandpw($len=8,$format='ALL'){
$is_abc=$is_numer=0;
$password=$tmp='';
switch($format){
case'ALL':
$chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
break;
case'CHAR':
$chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
break;
case'NUMBER':
$chars='0123456789';
break;
default:
$chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
break;
}//www.nhooo.com
mt_srand((double)microtime()*1000000*getmypid());
while(strlen($password)<$len){
$tmp=substr($chars,(mt_rand()%strlen($chars)),1);
if(($is_numer<>1&&is_numeric($tmp)&&$tmp>0)||$format=='CHAR'){
$is_numer=1;
}
if(($is_abc<>1&&preg_match('/[a-zA-Z]/',$tmp))||$format=='NUMBER'){
$is_abc=1;
}
$password.=$tmp;
}
if($is_numer<>1||$is_abc<>1||empty($password)){
$password=randpw($len,$format);
}
return$password;
}
for($i=0;$i<10;$i++){
echorandpw(8,'NUMBER');
echo"<br>";
}
PS:最后再为大家提供两款相关在线工具供大家参考使用:
在线随机数字/字符串生成工具:
http://tools.jb51.net/aideddesign/suijishu
高强度随机密码生成器:
http://tools.jb51.net/password/CreateStrongPassword
热门推荐
10 小红书平安祝福语简短
11 生日祝福语大全女孩简短
12 收生日红包祝福语 简短
13 领证幽默祝福语简短
14 法考面试祝福语简短
15 老哥出门祝福语简短语
16 送灯祝福语简短独特
17 幼儿狗年祝福语大全简短
18 好听的元旦简短祝福语