Conversion entier en chaine avec longueur de chaine fixe...

Résolu
Shivan0910 Messages postés 149 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 24 novembre 2010 - 13 nov. 2006 à 16:47
Shivan0910 Messages postés 149 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 24 novembre 2010 - 14 nov. 2006 à 08:38
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

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
13 nov. 2006 à 18:00
Hello,

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

par exemple.
Y a aussi str_pad ().
3
juki_webmaster Messages postés 947 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 5 avril 2008 3
13 nov. 2006 à 18:01
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
0
juki_webmaster Messages postés 947 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 5 avril 2008 3
13 nov. 2006 à 18:06
Oups malalam :x
Je cherchais justement le nom de la fonction (str_pad())
0
Shivan0910 Messages postés 149 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 24 novembre 2010 2
14 nov. 2006 à 08:38
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 !!"
0
Rejoignez-nous