• 技术文章 >后端开发 >PHP问题

    php实现随机的函数有哪些

    青灯夜游青灯夜游2021-09-30 13:56:26原创297

    php实现随机的函数有:1、rand(),可生成随机整数;2、mt_rand();3、array_rand(),可返回数组中的一个随机键名;4、shuffle(),可随机打乱数组;5、str_shuffle();6、uniqid()。

    本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑

    PHP随机函数主要有rand、mt_rand、array_rand,还有随机“排列”(打乱顺序)的函数shuffle、str_shuffle,能够产生唯一ID的uniqid。

    1、rand产生随机数

    <?php
    $base = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
    $count = strlen($base);
    $random = '';
    for ($i=0; $i < 16; $i++) { 
     $random.=$base[rand(0,$count-1)];
    }
    echo $random;
    ?>

    rand()函数是使用libc 的随机数发生器生成随机数的,一般较慢,且有不确定因素,建议使用mt_rand函数替代。

    getrandmax()函数可以返回rand函数能够产生的最大的随机数(我的系统为32767),所以在设置rand函数第二个参数时不要超高getrandmax的返回值。

    2、mt_rand产生随机数

    <?php
    $base = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
    $count = strlen($base);
    $random = '';
    for ($i=0; $i < 16; $i++) { 
     $random.=$base[mt_rand(0,$count-1)];
    }
    echo $random;
    ?>

    很多老的 libc 的随机数发生器具有一些不确定和未知的特性而且很慢。PHP 的 rand() 函数默认使用 libc 随机数发生器。mt_rand() 函数是非正式用来替换它的。该函数用了 » Mersenne Twister 中已知的特性作为随机数发生器,它可以产生随机数值的平均速度比 libc 提供的 rand() 快四倍。强烈建议在开发过程中使用mt_rand函数取代rand。

    如果没有提供可选参数 min 和 max,mt_rand() 返回 0 到 mt_getrandmax() 之间的伪随机数。例如想要 3到 20(包括 3 和 20)之间的随机数,用 mt_rand(3, 20)。

    3、array_rand函数

    <?php
    $base = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','0','1','2','3','4','5','6','7','8','9');
    $random = '';
    for ($i=0; $i < 16; $i++) { 
     $random.=$base[array_rand($base)];
    }
    echo $random;
    ?>

    array_rand返回数组中随机的键值,有点类似mt_rand()函数,其余的没什么特殊的地方,灵活运用而已。

    4、shuffle函数

    <?php
    $base = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','0','1','2','3','4','5','6','7','8','9');
    if(shuffle($base)){
     print_r($base);
    }
    ?>

    shuffle函数是打乱一个数组的序列,有点随机的意思,这里就放在随机函数里了。返回值为bool值,相当于直接引用了原变量。

    5、str_shuffle函数

    <?php
    $base = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
    echo str_shuffle($base);
    ?>

    这里str_shuffle的功能和shuffle的功能是类似的,唯一不同的是返回值,str_shuffle的原字符串是不变的。

    6、uniqid函数

    <?php
    echo uniqid();
    //54f806528172f
    ?>

    uniqid能够产生唯一的字符串,这个应用的范围可以相当广泛

    推荐学习:《PHP视频教程

    以上就是php实现随机的函数有哪些的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:php 随机函数
    上一篇:php怎么删除span标签 下一篇:php怎么将二进制转hex字符串
    线上培训班

    相关文章推荐

    • 如何简化设置php项目路径• php怎么输出80以内所有被3整除的数• drupal对比thinkphp,看国内的开源环境• phpstudy怎么修改php版本• php怎么删除span标签

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网