Создать N-разрядное случайное число - PullRequest
29 голосов
/ 14 февраля 2011

Я хочу сгенерировать случайное число из 6 цифр, используя функцию PHP mt_rand().

Я знаю, что функция PHP mt_rand() принимает только 2 параметра: минимум и максимум значение.

Как я могу это сделать?

Ответы [ 7 ]

69 голосов
/ 14 февраля 2011

Как то так?

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

Или это, тогда первая цифра может быть 0 в первом примере, это может быть только от 1 до 9

for ($i = 0; $i<6; $i++) 
{
    $a .= mt_rand(0,9);
}
3 голосов
/ 03 июня 2017

Вы можете использовать следующий код.

  <?php 
  $num = mt_rand(100000,999999); 
  printf("%d", $num);
  ?>

Здесь mt_rand (min, max);
min = Определяет наименьшее возвращаемое число.
max= Определяет наибольшее число, которое будет возвращено.

`

2 голосов
/ 09 сентября 2013

Примеры:

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

Подробнее

1 голос
/ 11 августа 2016
    <?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;
        }
?>
1 голос
/ 14 февраля 2011

Вы можете сделать это встроенным образом так:

$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(); 
    }
}

. Они создадут такой массив:1008 *

1 голос
/ 14 февраля 2011

насколько понял, должно быть так;

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

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

    }
return $num;
}
1 голос
/ 14 февраля 2011

Если первый член nunmber может быть нулем, то вам нужно отформатировать его, чтобы заполнить его нулями, если необходимо.

<?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
?>
...