• php 随机数


    方案1

    <?php 
        $num = range(0,10);//利用range()函数产生一个0到10的数组
        shuffle($num);//利用shuffle()函数将产生的$num数组随机打乱顺序
        for ($i=0; $i < 5; $i++) {//选取数组前5个,即随机 
            echo $num[$i]."&nbsp";
        }
     ?>

    方案2

    function randomkeys1($len=8,$format='NUMBER'){
        $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='0123456789';
                break;
        }
        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 = randomkeys($len,$format);
        }
        return $password;
    }

    两种方案都可以产生随机数

    方案1 在for循环的瞬间产生的随机数重复率很低,测试100个以内无重复

    方案2 在for循环的瞬间产生的随机数重复率很高

  • 相关阅读:
    JS(react)里面Json、String、Map、Object之间的转换
    react里面的几个内容
    object.assign的理解
    buffers与cached的区别
    vncserver错误
    Ubuntu可视化jupyter notebook
    ubuntu可视化桌面安装问题
    素数序列的生成及其应用 Version 2.2
    demo14-修改标签里面的属性
    demo13-修改元素的内容
  • 原文地址:https://www.cnblogs.com/whcghost/p/6695011.html
Copyright © 2020-2023  润新知