Conversion entier en chaine avec longueur de chaine fixe... [Résolu]

Signaler
Messages postés
149
Date d'inscription
mardi 7 janvier 2003
Statut
Membre
Dernière intervention
24 novembre 2010
-
Messages postés
149
Date d'inscription
mardi 7 janvier 2003
Statut
Membre
Dernière intervention
24 novembre 2010
-
Bonjour,

Je vais certainement faire le boulet, car ca doit être quelque chose de dit et répété... surtout que la semaine dernière j'ai trouvé la solution mais que je ne remets plus la main dessus...

mon prlbèmee :

J'ai un nombre qui s'incrémente dans une boucle 1, 2, 3, ... n
J'aimerai appliquer une sorte de masque à cet entier pour le convertir en chaine de caractères de 4 caractères avec des "0" devant
0001, 0002, 0003, 0004, ... 0100 ... 1000...

J'avais lu un code ou c'était fait en une ligne, sans faire de boucle, tester la longueur de la chaine attribuer les 0 selon le nombre de caractères etc... quelque chose genre

$MaChaine=xxx_la_fonction_xxx('0000', $MonChiffre);

A peu de chose près j'ai bien l'impression que ca ressemblait à ca meme si je crois qu'il y avait quand meme strlen quelque part dans l'exemple que j'avais trouvé, l'important pour moi étant de ne pas faire une boucle juste pour ca...

Si quelqu'un peut me réorienter ou me donner un exemple, ca m'aiderait beaucoup,

Merci d'avance,

Cordialement,

Shivan0910

"la vitesse de la lumière est supérieure à celle du son, c'est pourquoi un imbécile parait intelligent jusqu'a ce qu'il parle !!"

4 réponses

Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
Hello,

<?php
for ($i = 1; $i < 1050; $i += 50) {
    echo sprintf ('%04s', $i);
    echo '
';
}
?>

par exemple.
Y a aussi str_pad ().
Messages postés
947
Date d'inscription
mercredi 19 novembre 2003
Statut
Membre
Dernière intervention
5 avril 2008
3
Salut,

Pour faire tres simple :

echo sprintf('%04d, '52'); // 0052

Maniere " à l'ancienne " avec transtypage à gogo :

function zero($zero, $val) {
$lenzero = strlen($zero);
for ($i=($lenzero-strlen($val)), $j=0; $i<$lenzero;$i++,$j++)
$zero[$i] = $val[$j];
return $zero;
}
echo zero('0000','52'); // 0052
Messages postés
947
Date d'inscription
mercredi 19 novembre 2003
Statut
Membre
Dernière intervention
5 avril 2008
3
Oups malalam :x
Je cherchais justement le nom de la fonction (str_pad())
Messages postés
149
Date d'inscription
mardi 7 janvier 2003
Statut
Membre
Dernière intervention
24 novembre 2010
2
str_pad, c'est ce que je cherchais, merci !!

"la vitesse de la lumière est supérieure à celle du son, c'est pourquoi un imbécile parait intelligent jusqu'a ce qu'il parle !!"