您现在的位置是:首页 > 其他

李清波 2017-03-09 其他 4958 复制当前网址

php快速生成随机数组的方法详解

如何用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 "; 
}


文章来源:http://liqingbo.com/blog-1293.html

评论