最小値と最大値に基づいて乱数を生成する方法はありますか?
たとえば、minが1でmax 20の場合、1〜20を含む1〜20の任意の数を生成する必要がありますか?
<?php
$min=1;
$max=20;
echo Rand($min,$max);
?>
新しい PHP7 では、最終的に 暗号的に安全な擬似乱数整数 のサポートがあります。
int random_int ( int $min , int $max )
random_int —暗号的に安全な擬似乱数整数を生成します
基本的に、以前の回答は廃止されます。
A 早く より高速なバージョンではmt_Randを使用します。
$min=1;
$max=20;
echo mt_Rand($min,$max);
ソース: http://www.php.net/manual/en/function.mt-Rand.php 。
注:これを機能させるには、サーバーでMath PHPモジュールを有効にする必要があります。そうでない場合は、ホストをバグして有効にするか、通常の(そしてより遅い)Rand()を使用する必要があります。
ここに答えをまとめて、バージョンに依存しないようにしました。
function generateRandom($min = 1, $max = 20) {
if (function_exists('random_int')):
return random_int($min, $max); // more secure
elseif (function_exists('mt_Rand')):
return mt_Rand($min, $max); // faster
endif;
return Rand($min, $max); // old
}
Rand(1,20)
PHPのRand関数のドキュメントは次のとおりです。
http://php.net/manual/en/function.Rand.php
srand()
関数を使用して、乱数ジェネレーターのシード値を設定します。
これを試してください。希望に応じてidを生成します。
function id()
{
// add limit
$id_length = 20;
// add any character / digit
$alfa = "abcdefghijklmnopqrstuvwxyz1234567890";
$token = "";
for($i = 1; $i < $id_length; $i ++) {
// generate randomly within given character/digits
@$token .= $alfa[Rand(1, strlen($alfa))];
}
return $token;
}