一聚教程网:一个值得你收藏的教程网站

热门教程

php如何从一个数组中随机的取出若干个不同的数的教程

时间:2022-06-24 19:47:36 编辑:袖梨 来源:一聚教程网

第一种算法,CSDN上别人的想法 

 
 代码如下 复制代码
$num= 0;
 $array=array(1, 2, 3, 4, 5, 6, 7, 8, 9);
 $arr=array();
 $g= 5;
 $tag= true;
 while($tag) {
   $count=count($array);
   $t= rand(0, 1);
   if($t== 1) {
     $arr[] =$array[$num];
     unset($array[$num]);
   }
   $num++;
   if(count($arr) ==$g) {
     $tag= false;
   }
   if($num==$count) {
     $num= 0; //循环
   }
 }
var_dump($arr);
 

 第二种算法,自己想的。

可以在每次取出数据之后将该数据和最后没有获取的数据替换,然后再去没有取得的数据中随机获取值

 
 代码如下 复制代码
functionswap(&$a, &$b)
{
  $temp=$b;
  $b=$a;
  $a=$temp;
}
  
  
$result=array();
$src=array();
for($i= 0 ;$i< 40 ;$i++)
{
  $src[] =$i+ 1;
}
$arr_len=count($src);
$count= 20;
$index= 0;
while($index<$count)
{
  $random= rand(0,$arr_len-$index- 1);
  $result[] =$src[$random];
  swap($src[$random] ,$src[$arr_len-$index- 1]);
  $index+= 1;
}
  
  
print_r(json_encode($result));
print_r(json_encode($src));
 

热门栏目