马上注册,自学更多教程,下载更多资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

x

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

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

  1. <?php
  2. $arr=range(1,10);
  3. shuffle($arr);
  4. foreach($arr as $values)
  5. {
  6. echo $values." ";
  7. }
  8. ?>
复制代码

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

  1. <?php
  2. $arr=array();
  3. while(count($arr)<10)
  4. {
  5. $arr[]=rand(1,10);
  6. $arr=array_unique($arr);
  7. }
  8. echo implode(" ",$arr);
  9. ?>
复制代码

例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.jb51.net
  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.jb51.net
  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. }
  25. if(($is_abc <> 1 && preg_match('/[a-zA-Z]/',$tmp)) || $format == 'NUMBER'){
  26. $is_abc = 1;
  27. }
  28. $password.= $tmp;
  29. }
  30. if($is_numer <> 1 || $is_abc <> 1 || empty($password) ){
  31. $password = randpw($len,$format);
  32. }
  33. return $password;
  34. }
  35. for($i = 0 ; $i < 10; $i++){
  36. echo randpw(8,'NUMBER');
  37. echo "<br>";
  38. }
复制代码



CCKDN-云码酷 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与CCKDN-云码酷享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和CCKDN-云码酷的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、CCKDN-云码酷管理员和版主有权不事先通知发贴者而删除本文

回复

使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    0

    主题

    202

    回帖

    202

    积分

    中级会员

    积分
    202
    发表于 2018-4-22 10:49:08 | 显示全部楼层
    沙发
    回复 支持 反对

    使用道具 举报

    1

    主题

    213

    回帖

    215

    积分

    中级会员

    积分
    215
    发表于 2018-4-25 15:53:45 来自手机 | 显示全部楼层
    板凳
    OMG!介是啥东东!!!
    回复 支持 反对

    使用道具 举报

    0

    主题

    195

    回帖

    195

    积分

    注册会员

    积分
    195
    发表于 2018-4-25 16:10:45 来自手机 | 显示全部楼层
    地板
    不错 支持一个了
    回复 支持 反对

    使用道具 举报

    0

    主题

    185

    回帖

    185

    积分

    注册会员

    积分
    185
    发表于 2018-4-26 09:51:02 | 显示全部楼层
    5#
    LZ帖子不给力,勉强给回复下吧
    回复 支持 反对

    使用道具 举报

    申请友链|Archiver|手机版|小黑屋|CCKDN-云码酷 ( 京ICP备13037810号 )

    Powered by Discuz! X3.5  © 2001-2022 云码酷