39

mt_rand()PHP関数を使用して6桁の乱数を生成したいと考えています。

mt_rand()PHP関数は、最小値最大値の 2 つのパラメーターしかとらないことを知っています。

どうやってやるの?

4

7 に答える 7

83

このようなもの ?

<?php 
$a = mt_rand(100000,999999); 
?>

または、この場合、最初の例では最初の桁を 0 にすることができますが、1 から 9 までにすることができます

for ($i = 0; $i<6; $i++) 
{
    $a .= mt_rand(0,9);
}
于 2011-02-14T09:55:41.907 に答える
4
    <?php
//If you wanna generate only numbers with min and max length:
        function intCodeRandom($length = 8)
        {
          $intMin = (10 ** $length) / 10; // 100...
          $intMax = (10 ** $length) - 1;  // 999...

          $codeRandom = mt_rand($intMin, $intMax);

          return $codeRandom;
        }
?>
于 2016-08-11T19:16:39.947 に答える
2

例:

print rand() . "<br>"; 
//generates and prints a random number
print rand(10, 30); 
//generates and prints a random number between 10 and 30 (10 and 30 ARE included)
print rand(1, 1000000); 
//generates and prints a random number between on and one million

詳細

于 2013-09-09T06:49:47.033 に答える
1

最初のメンバー番号がゼロになる可能性がある場合は、必要に応じてフォーマットしてゼロで埋める必要があります。

<?php 
$number = mt_rand(10000,999999);
printf("[%06s]\n",$number); // zero-padding works on strings too
?>

または、フォームゼロにできる場合は、次のようにできます。

<?php 
$number = mt_rand(0,999999);
printf("[%06s]\n",$number); // zero-padding works on strings too
?>
于 2011-02-14T10:01:18.547 に答える
1

理解する限り、それはそのようであるべきです。

function rand6($min,$max){
    $num = array();

    for($i=0 ;i<6;i++){
    $num[]=mt_rand($max,$min);

    }
return $num;
}
于 2011-02-14T10:03:26.513 に答える
1

次のようにインラインで実行できます。

$randomNumbersArray = array_map(function() {
    return mt_rand(); 
}, range(1,6));

または、関数を使用した簡単な方法:

$randomNumbersArray = giveMeRandNumber(6);

function giveMeRandNumber($count)
{
    $array = array();
    for($i = 0; $i <= $count; $i++) {
        $array[] = mt_rand(); 
    }
}

これらは、次のような配列を生成します。

Array
(
    [0] => 1410367617
    [1] => 1410334565
    [2] => 97974531
    [3] => 2076286
    [4] => 1789434517
    [5] => 897532070
)
于 2011-02-14T10:03:42.630 に答える