这个没什么好废话的;直奔主题来说思路;
首先是要用mt_rand()函数生成指定个数的随机数字;
然后使用array_unique()函数去重;
因为去重了;所以得到的数字就不够指定个数了;
所以;核心是要用while循环;直到得到指定个数的数字;
到这里基本可以是结束了;
对于追求完美的人来说;还可以再用个sort();
目的不是要用来排序;主要是将得到的数组key格式化;
用代码来说话;就如下;
/** * 生成不重复的随机数 * @param int $start 需要生成的数字开始范围 * @param int $end 结束范围 * @param int $length 需要生成的随机数个数 * @return array 生成的随机数 */ function get_rand_number( $start =1, $end =10, $length =4){ $connt =0; $temp = array (); while ( $connt < $length ){ $temp []=mt_rand( $start , $end ); $data = array_unique ( $temp ); $connt = count ( $data ); } sort( $data ); return $data ; } |
当然;重点不是这个函数;重点是这个函数的思路;可以解决很多类似的问题;