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函数的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did30660