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

Était-ce utile?

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 avec 0 à 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);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top