切换到宽版

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
扫描二维码关注官方公众号
查看: 36|回复: 0

php生成随机数的三种方法

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:282
  • 打卡月天数:12
  • 打卡总奖励:122024
  • 最近打卡:2024-10-18 12:14:41
  • TA的每日心情
    开心
    27 分钟前
  • 签到天数: 323 天

    连续签到: 164 天

    [LV.8]以坛为家I

    863

    主题

    65

    回帖

    214748万

    积分

    管理员

    A1ZEYDVFewbz1

    积分
    2147483647
    威望
    2147483647 点
    金钱
    2147483647 cb
    贡献值
    2147483647 点
    违规
    0 次

    最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

    QQ
    发表于 2024-7-17 16:50:02 | 显示全部楼层 |阅读模式

    马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

    ×

    如何用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. }
    复制代码


    都是
    点评回复

    使用道具 举报

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

    本版积分规则

    更多主题

    QQ|站点统计|Archiver|手机版|小黑屋|73327424's BBS ( 京ICP备05008343号|京公网安备11010602022017号 )
    免责声明:
    本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

    Mail To:3574358495@qq.com

    GMT+8, 2024-10-18 12:42 , Processed in 0.142472 second(s), 39 queries .

    Powered by Discuz! X3.5 Licensed

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表