ホームページ  >  記事  >  バックエンド開発  >  PHP は配列からいくつかの異なる数値をランダムに削除します

PHP は配列からいくつかの異なる数値をランダムに削除します

PHP中文网
PHP中文网オリジナル
2017-03-30 16:50:031528ブラウズ

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);

2 番目のアルゴリズムは私自身のアイデアです。

各フェッチ後にデータを最後の未取得データに置き換えて、未取得データからランダムに値を取得できます

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 中国語 Web サイト (www.php.cn) にご注意ください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。