php aléatoire x chiffres
J'ai besoin de créer un nombre aléatoire avec un montant de x chiffres.
Donc permet de dire que x est de 5, j'ai besoin d'un nombre par exemple. 35562
Si x est de 3, alors il serait de jeter quelque chose en retour comme; 463
Quelqu'un pourrait-il me montrer comment c'est fait?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
rand()
avecpow()
pour ce faire:Ce sera la sortie d'un nombre compris entre 100 et 999. Cela parce que 10^2 = 100 et 10^3 = 1000 et puis vous avez besoin de le soustraire à un seul dans la plage souhaitée.
Si 005 est aussi un exemple valable que vous souhaitez utiliser le code suivant pour remplir avec des zéros:
J'ai l'habitude de simplement utiliser
RAND()
http://php.net/manual/en/function.rand.phppar exemple
pour votre 5 chiffres de nombre aléatoire
Vous pouvez utiliser
rand($min, $max)
pour que le but exact.Afin de limiter le nombre de valeurs à des valeurs à x chiffres, vous pouvez utiliser les éléments suivants:
$x
chiffres, pas un nombre entre un nombre et$x
.Voici une solution simple, sans boucles ou des tracas qui
vous permettent de créer aléatoire chaîne de caractères, de chiffres ou même avec des symboles spéciaux.
$randomNum = substr(str_shuffle("0123456789"), 0, $x);
où
$x
peut être le nombre de chiffresPar exemple.
substr(str_shuffle("0123456789"), 0, 5);
Résultats après quelques exécutions
Vous pouvez utiliser le même code pour générer de la chaîne aléatoire aussi, à l'instar de ce
Résultats avec
$x = 11
Traiter votre numéro une liste de chiffres et de simplement ajouter un aléatoire à chaque fois:
Ou purement solution numérique:
Testé ici.
x
chiffres. Modifier: Nevermind, je crois que je vous comprends. Non, il ne va pas créer un certain nombre, comme "093".le moyen le plus simple je pense est de l'aide
rand
fonction avecstr_pad
Dans l'exemple ci-dessus , il va générer un nombre aléatoire dans une plage de 0 à 999.
Et avoir 5 chiffres.
rand(1000, 9999);
travaille plus vite que x4 foisrand(0,9);
référence:
les deux fonctions était en cours d'exécution en plus de 100000 itérations de rendre les résultats plus explicites
le faire avec une boucle:
rand
oumt_rand
va faire...utilisation:
x
chiffres; pourriez-vous adapter votre réponse à vous fournir un exemple de comment utiliserrand
oumt_rand
pour ce faire?Eh bien, vous pouvez l'utiliser comme simple fonction php la fonction mt_rand(2000,9000) ce qui peut générer un numéro à 4 chiffres de nombre aléatoire
ce simple script ne
C'est une solution simple pour générer un nombre aléatoire de N chiffres:
Le vérifier ici: http://codepad.org/pyVvNiof
Cette fonction fonctionne parfaitement avec pas de répétitions et le nombre souhaité de chiffres.
Vous pouvez appeler la fonction et passer le nombre de chiffres par exemple:
résultats de l'échantillon:
Scénario Original, obtenu à partir de ce gist
S'il vous plaît pas que
rand()
ne génère pas d'un point de vue cryptographique sécurisé valeur selon les docs:http://php.net/manual/en/function.rand.php
Au lieu de cela, il est préférable d'utiliser
random_int()
, disponible sur PHP 7 (Voir: http://php.net/manual/en/function.random-int.php).Afin d'étendre @Marcus réponse, vous devez utiliser:
Notez que l'utilisation de
rand()
est très bien si vous n'avez pas besoin d'une sécurité de nombre aléatoire.les gens vous aime vraiment compliquer les choses 🙂
le vrai problème, c'est que l'OP veut, sans doute, ajouter à la fin de certains très gros chiffre. si non, il n'est pas nécessaire que je pense que ce sera nécessaire. comme les zéros de gauche dans un certain nombre de juste, de bien, de gauche des zéros.
donc, il suffit d'ajouter la plus grande partie de ce numéro de maths somme, pas de chaîne.
par exemple
$x = "102384129" . complex_3_digit_random_string();
devient tout simplement
$x = 102384129000 + rand(0, 999);
fait.