好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php 生成N个不重复的随机数实例详解 - php函数

php 生成N个不重复的随机数实例详解

生成随机数时用了mt_rand() 函数,这个函数生成随机数的平均速度要比 rand() 快四倍。 

去除数组中的重复值时用了[翻翻法],就是用 array_flip() 把数组的 key 和 value 交换两次,这种做法比用 array_unique() 快得多。 

返回数组前,先使用 shuffle() 为数组赋予新的键名,保证键名是 0-n 连续的数字,如果不进行此步骤,可能在删除重复值时造成键名不连续,给遍历带来麻烦,实例代码如下:

/**     * 生成一定数量的不重复随机数     * @param int $min ,$max指定随机数的范围     * @param int $max     * @param int $num 指定生成数量     * @return array     */   function  unique_rand( $min ,  $max ,  $num ) {        $count  = 0;        $return  =  array ();        while  ( $count  <  $num ) {            $return [] = mt_rand( $min ,  $max );            $return  =  array_flip ( array_flip ( $return ));            $count  =  count ( $return );       }       shuffle( $return );        return   $return ;   }

查看更多关于php 生成N个不重复的随机数实例详解 - php函数的详细内容...

  阅读:46次