simple aléatoire () question
Question
J'ai besoin d'un nombre aléatoire de 4 chiffres
Actuellement, j'utilise rand (1000,9999) qui me donne toujours un nombre à 4 chiffres mais j’élimine 0000-0999 comme résultats possibles.
comment composez-vous un nombre aléatoire?
(cela va aussi éventuellement être ajouté à une chaîne, ai-je besoin de transtyper l'int en tant que chaîne?)
merci
La solution
Dans les langages de script tels que PHP, vous n'avez pas besoin de transtyper dans 99% des cas.
Le rembourrage peut être effectué à l'aide de
sprintf("%04u", rand(0, 9999));
Explications
le premier argument de sprintf
spécifie le format
-
%
reste pour le deuxième, troisième, quatrième argument, etc. le premier%
est remplacé par le deuxième argument, le deuxième%
par le troisième etc. -
0
reste pour le comportement de remplissage avec0
à gauche. -
4
reste pendant "au moins 4 caractères doivent être imprimés" -
u
reste pour l'entier non signé.
Autres conseils
sprintf("%04d", rand(0,9999))
devrait faire ce que vous voulez
Rapide et sale ... que diriez-vous de faire:
rand(10000,19999)
et prenez les quatre derniers chiffres:
substr(rand(10000, 19999), 1, 4)
str_pad(mt_rand(0, 9999), 4, '0', STR_PAD_LEFT);
Utilisez mt_rand () au lieu de rand (), c'est mieux.
Vous pouvez utiliser str_pad () ou sprintf () pour formater votre chaîne:
$rand = rand(0, 9999);
$str1 = str_pad($rand, 4, '0', STR_PAD_LEFT);
$str2 = sprintf('%04u', $rand);