如何用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函数生成随机数,可以去掉重复值。
$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); } foreach($return as $value) { echo $value." "; } echo "<br/>"; $arr=array_values($return);// 获得数组的值 foreach($arr as $key) echo $key." ";
例4,
//range 是将1到100 列成一个数组 $numbers = range (1,100); //shuffle 将数组顺序随即打乱 shuffle ($numbers); //array_slice 取该数组中的某一段 $no=6; $result = array_slice($numbers,0,$no); for ($i=0;$i<$no;$i++){ echo $result[$i]."<br>"; } print_r($result);
例5,
$numbers = range (1,20); srand ((float)microtime()*1000000); shuffle ($numbers); while (list (, $number) = each ($numbers)) { echo "$number "; }