web-dev-qa-db-fra.com

Générer un nombre aléatoire à N chiffres

Je souhaite générer un nombre aléatoire à 6 chiffres à l'aide de la fonction PHP mt_Rand().

Je sais que la fonction PHP mt_Rand() ne prend que 2 paramètres: un minimum et un maximum valeur.

Comment puis je faire ça?

28
Saleh

Quelque chose comme ça ?

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

Ou alors, le premier chiffre peut être 0 dans le premier exemple, il ne peut être que 1 à 9

for ($i = 0; $i<6; $i++) 
{
    $a .= mt_Rand(0,9);
}
67
Marco

Vous pouvez utiliser le code suivant.

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

Ici mt_Rand (min, max);
min = Spécifie le plus petit nombre à renvoyer.
max = Spécifie le plus grand nombre à renvoyer.

`

3
rashedcs

Si le premier numéro de membre peut être zéro, vous devez le formater pour le remplir avec des zéros, si nécessaire.

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

Ou, si vous pouvez utiliser la forme zéro, vous pouvez le faire pour:

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

pour autant que cela soit compris, cela devrait être comme ça; 

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

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

    }
return $num;
}
1
Kenan Deniz

Vous pouvez le faire en ligne comme ceci:

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

Ou la manière simple, avec une fonction:

$randomNumbersArray = giveMeRandNumber(6);

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

Ceux-ci produiront un tableau comme celui-ci:

Array
(
    [0] => 1410367617
    [1] => 1410334565
    [2] => 97974531
    [3] => 2076286
    [4] => 1789434517
    [5] => 897532070
)
1
xzyfer
    <?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
Richelly Italo

Exemples:

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

Plus de détails

1
Aditya P Bhatt