>  기사  >  백엔드 개발  >  PHP는 배열에서 여러 다른 숫자를 무작위로 제거합니다.

PHP는 배열에서 여러 다른 숫자를 무작위로 제거합니다.

PHP中文网
PHP中文网원래의
2017-03-30 16:50:031580검색

PHP는 배열에서 여러 개의 서로 다른 숫자를 무작위로 추출합니다

첫 번째 알고리즘, 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);

두 번째 알고리즘은 제가 만든 아이디어입니다.

각 데이터를 가져온 후 마지막에 얻지 못한 데이터로 데이터를 대체한 후, 얻지 못한 데이터에서 무작위로 값을 얻을 수 있습니다

function swap(&$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));

위 내용은 PHP가 배열에서 여러 다른 숫자를 무작위로 추출하는 방법입니다. 더 많은 관련 내용을 보려면 PHP 중국어 웹사이트(www.php.cn)를 참고하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.