3 votes

Générer des nombres entiers avec des 0 en tête

J'ai un projet dans lequel je dois générer des nombres aléatoires de 00000 à 99999. Ce n'est pas le caractère aléatoire qui me bloque, mais le fait qu'il faille toujours 5 caractères. Ainsi, lorsqu'il génère le nombre 14, je veux qu'il soit 00014.

Quelle est la meilleure façon d'y parvenir ?

11voto

Stefan Gehrig Points 47227

sprintf() peut le faire :

echo sprintf('%05d', 0);

Ou utiliser str_pad() - mais le code est un peu plus long :

echo str_pad(0, 5, 0, STR_PAD_LEFT);

6voto

mauris Points 19666

str_pad() est capable de faire ce que vous voulez que le code fasse.

Tout simplement :

$s = str_pad('14', 5, '0', STR_PAD_LEFT);

3voto

The Bndr Points 3442

générer des nombres entiers avec des 0 en tête

Un nombre entier n'a jamais de 0 en tête.

Si vous avez besoin de 0 en tête, vous devez convertir l'entier en chaîne -> voir la réponse de thephpdeveloper. C'est la bonne façon d'écrire un nombre avec des 0 en tête dans une base de données - par exemple.

Si vous souhaitez travailler avec cet entier (par exemple pour des calculs), il est préférable de laisser l'entier en tant qu'entier (ne pas le transformer en chaîne) et chaque fois que vous avez besoin de sortir ces nombres -> prenez la solution de "Stefan Gehrig".

0voto

jensgram Points 18047

Même substr() peut le faire :

print substr('0000' . $myRandomNumber, -5);

(Ce n'est pas que je le recommande, je voulais juste apporter ma contribution :) )

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X