zoukankan      html  css  js  c++  java
  • php生成随机数的三种方法

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

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

        
    <?php
    $arr=range(1,10);
    shuffle($arr);
    foreach($arr as $values)
    {
      echo $values." ";
    }
    ?>

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

        
    <?php
    $arr=array();
    while(count($arr)<10)
    {
      $arr[]=rand(1,10);
      $arr=array_unique($arr);
    }
    echo implode(" ",$arr);
    ?>

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

        
    <?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随机数生成函数示例
    ?
        
    <?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>";
    }

  • 相关阅读:
    前端面试题精选
    闭包、作用域、THIS、OOP
    Ubuntu,debian一键安装Mariadb
    两条命令实现nodejs快速安装
    HTML 5的革新——语义化标签section和article的区别
    uni-app之uni.showToast()image路径问题
    vue-cli4配置文件别名
    蓝湖使用方法
    Node组件——Express简介
    程序员最深情的告白——《致对象》
  • 原文地址:https://www.cnblogs.com/zoubizhici/p/5655788.html
Copyright © 2011-2022 走看看