当前位置:首页 > PHP教程 > php应用 > 列表

php生成随机数的三种方法

发布:smiling 来源: PHP粉丝网  添加日期:2021-04-11 17:03:05 浏览: 评论:0 

分享下php生成随机数的三种方法,生成1-10之间的不重复随机数,php生成不重复随机数的例子,需要的朋友参考下

如何用php生成1-10之间的不重复随机数?

例1,使用shuffle函数生成随机数。

  1. <?php 
  2. $arr=range(1,10); 
  3. shuffle($arr); 
  4. foreach($arr as $values
  5.  echo $values." "
  6. ?> 

例2,使用array_unique函数生成随机数。

  1. <?php 
  2. $arr=array(); 
  3. while(count($arr)<10) 
  4.  $arr[]=rand(1,10); 
  5.  $arr=array_unique($arr); 
  6. echo implode(" ",$arr); 
  7. ?> 

例3,使用array_flip函数生成随机数,可以去掉重复值。

  1. <?php 
  2. $arr=array(); 
  3. $count1=0; 
  4. $count = 0; 
  5. $return = array(); 
  6. while ($count < 10)  
  7.  { 
  8.  $return[] = mt_rand(1, 10); 
  9.  $return = array_flip(array_flip($return)); 
  10.  $count = count($return); 
  11.  } //www.phpfensi.com 
  12. foreach($return as $value
  13.  { 
  14.  echo $value." "
  15.  } 
  16. echo "<br/>"
  17. $arr=array_values($return);// 获得数组的值  
  18. foreach($arr as $key
  19. echo $key." "
  20. ?> 

php随机数生成函数示例

  1. <?php 
  2. function randpw($len=8,$format='ALL'){ 
  3. $is_abc = $is_numer = 0; 
  4. $password = $tmp ='';  
  5. switch($format){ 
  6. case 'ALL'
  7. $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
  8. break
  9. case 'CHAR'
  10. $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
  11. break
  12. case 'NUMBER'
  13. $chars='0123456789'
  14. break
  15. default : 
  16. $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
  17. break
  18. // www.phpfensi.com 
  19. mt_srand((double)microtime()*1000000*getmypid()); 
  20. while(strlen($password)<$len){ 
  21. $tmp =substr($chars,(mt_rand()%strlen($chars)),1); 
  22. if(($is_numer <> 1 && is_numeric($tmp) && $tmp > 0 )|| $format == 'CHAR'){ 
  23. $is_numer = 1; 
  24. if(($is_abc <> 1 && preg_match('/[a-zA-Z]/',$tmp)) || $format == 'NUMBER'){ 
  25. $is_abc = 1; 
  26. $password.= $tmp
  27. if($is_numer <> 1 || $is_abc <> 1 || emptyempty($password) ){ 
  28. $password = randpw($len,$format); 
  29. return $password
  30. for($i = 0 ; $i < 10; $i++){ 
  31. echo randpw(8,'NUMBER'); 
  32. echo "<br>"
  33. }

Tags: php生成随机数

分享到: