PHPで非繰り返し乱数を生成する方法まとめ、PHPで乱数を生成する方法まとめ
Web アプリケーション、WAP、モバイル アプリケーションのいずれであっても、乱数が適切な位置を占めます。私が最近関わったいくつかの小規模なプロジェクトでは、乱数またはランダム配列を扱う必要があることが多いため、PHP で非反復乱数を生成するための一般的な方法をいくつかまとめます。
方法 1:
コードをコピーします コードは次のとおりです:
$numbers = 範囲 (1,50)
;
//シャッフルすると配列の順序が崩れます
シャッフル ($numbers)
//array_slice は配列の特定のセグメントを取得します
$num=6;
$result = array_slice($numbers,0,$num);
print_r($result);
?>
方法 2:
コードをコピーします
コードは次のとおりです:
$numbers = 範囲 (1,20)
//乱数ジェネレーターのシードの播種はオプションであり、テスト後の結果には影響しません
srand ((float)microtime()*1000000);
シャッフル ($numbers)
//リストの最初の値をスキップします (インデックスは保存されます)
while (list(, $number) = each ($numbers)) {
エコー "$number ";
}
?>
方法 3:
コードをコピーします
コードは次のとおりです:
関数 NoRand($begin=0,$end=20,$limit=5){
$rand_array=範囲($begin,$end)
shuffle($rand_array);//既製の配列のランダム配置関数を呼び出します
return array_slice($rand_array,0,$limit);//最初の $limit 部分をインターセプトします
}
print_r(NoRand());
?>
上記は、1〜20の間で5つの非反復値をランダムに生成できます
方法 4:
コードをコピーします
コードは次のとおりです:
$tmp=配列();
while(count($tmp)
$tmp[]=mt_rand(1,20);
$tmp=array_unique($tmp);
}
print_r($tmp);
?>
方法 5:
コードをコピーします
コードは次のとおりです:
$tmp = range(1,30);
print_r(array_rand($tmp,10));
?>
これは呼び出すよりも簡単かもしれません (追記: ステップ サイズが範囲で指定されている場合は、array_rand の 2 番目のパラメーターが $tmp の長さを超えているかどうかに注意する必要があります)。
PHP は非常に豊富な配列関数を提供します。もちろん、より良い方法がある場合は、この記事を紹介してください。
http://www.bkjia.com/PHPjc/914063.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/914063.html
技術記事 PHP で非反復乱数を生成する方法の概要 PHP で乱数を生成する方法の概要 Web アプリケーション、WAP、モバイル アプリケーションのいずれであっても、乱数は重要な役割を果たします。最近私が関わったいくつかの小さなプロジェクト...