帮助中心 >  技术知识库 >  网站相关 >  程序开发 >  php快速生成随机数组的方法详解

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

2019-01-14 10:08:55 16339

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

}


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: