rand() 函数返回随机整数。
<?php
echo(rand();
echo(rand();
echo(rand(10,100))
?>
输出:
17757
3794
97
mt_rand() 使用 Mersenne Twister 算法返回随机整数。
<?php
echo(mt_rand());
echo(mt_rand());
echo(mt_rand(10,100));
?>
输出类似:
3150906288
513289678
35
PHP中函数rand和mt_rand的区别比较:
mt_rand() 比rand() 快四倍
很多老的 libc 的随机数发生器具有一些不确定和未知的特性而且很慢。PHP 的 rand() 函数默认使用 libc 随机数发生器。mt_rand() 函数是非正式用来替换它的。该函数用了 Mersenne Twister 中已知的特性作为随机数发生器,mt_rand() 可以产生随机数值的平均速度比 libc 提供的 rand() 快四倍。
如何用php生成1-10之间的不重复随机数?
例1,使用shuffle函数生成随机数。
</>code
- <?php
- $arr=range(1,10);
- shuffle($arr);
- foreach($arr as $values)
- {
- echo $values." ";
- }
- ?>
例2,使用array_unique函数生成随机数。
</>code
- <?php
- $arr=array();
- while(count($arr)<10)
- {
- $arr[]=rand(1,10);
- $arr=array_unique($arr);
- }
- echo implode(" ",$arr);
- ?>
例3,使用array_flip函数生成随机数,可以去掉重复值。
</>code
- <?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.jb51.net
- foreach($return as $value)
- {
- echo $value." ";
- }
- echo "<br/>";
- $arr=array_values($return);// 获得数组的值
- foreach($arr as $key)
- echo $key." ";
- ?>
php随机数生成函数示例
</>code
- <?php
- function randpw($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.jb51.net
- 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++){
- echo randpw(8,'NUMBER');
- echo "<br>";
- }
如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛