Problème preg_replace() et chiffres, numéros

Problème preg_replace() et chiffres, numéros - PHP - Programmation

Marsh Posté le 19-11-2004 à 18:25:55    

J'ai un probleme avec une fonction qui va remplacer des chiffres en des mots.
 
Je vais faire un exemple simple avec 3 chiffres qui sont "1", "2", "12"
 
"1" sera remplacé par "un"
"2" sera remplacé par "deux"
"12" sera remplacé par "douze"
 
Pour 1 et 2 ça fonctionne très bien.
Le problème c'est que pour 12 ça ne va pas m'afficher "douze" mais "undeux"
 
Donc je vous montre le code si vous pouviez m'aider ce serait sympa :)
 

Code :
  1. $num = array (
  2. '/1/',
  3. '/2/',
  4. '/12/'
  5. );
  6. $choix = array (
  7. 'un',
  8. 'deux',
  9. 'douze'
  10. );
  11. return(preg_replace($num,$choix,"12" ));


 
Voilà merci d'avance :)
Et on m'a aussi dit que str_replace étais pas mal mais je ne sais pas ce qui est le mieux. Pour info je dois traiter environ 15000 chiffres.
Merci ;p
 
 

Reply

Marsh Posté le 19-11-2004 à 18:25:55   

Reply

Marsh Posté le 19-11-2004 à 18:28:49    

Pourquoi ne pas faire un tableau du genre :
$en_lettres[1] = 'un';
$en_lettres[2] = 'deux';
etc.
 
?


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 19-11-2004 à 18:32:26    

Parce que j'ai automatisé le tout pour un affichage de masse dans une tonne de section et que ma solution est plus adapté.

Reply

Marsh Posté le 19-11-2004 à 19:01:59    

Quelqun svp ?

Reply

Marsh Posté le 19-11-2004 à 19:04:30    

t'as songé à mettre le 12 en première position? (genre devant le 1) [:petrus75]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 19-11-2004 à 19:10:58    

y a plus de 1500 lignes de numéros :)

Reply

Marsh Posté le 19-11-2004 à 19:15:40    

masenko a écrit :

y a plus de 1500 lignes de numéros :)


et alors?
[:antp]
 
http://www.wackyweaselworld.com/flameINC/images/MISC38.jpg


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 19-11-2004 à 19:21:29    

masenko a écrit :

Parce que j'ai automatisé le tout pour un affichage de masse dans une tonne de section et que ma solution est plus adapté.


 
Dans ce cas, je propose :
 

Code :
  1. $num = array_reverse($num);
  2. $choix = array_reverse($choix);
  3. return preg_replace($num, $choix, '12');


Message édité par sielfried le 19-11-2004 à 19:21:39

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 19-11-2004 à 19:21:53    

Bah alors...
150 = 1 15 150
120 = 1 12 20
1300 = 1 13
 
enfin j en passes des milliers la
 
http://www.wackyweaselworld.com/flameINC/images/MISC38.jpg

Reply

Marsh Posté le 19-11-2004 à 19:24:03    

Bon j'ai trouvé une sorte de solution mais c'est pas le top.
Si vous avez une solution pour que ça remplace l'entier et non tout ce qui passe je suis toujours la bye Biii

Reply

Marsh Posté le 19-11-2004 à 19:24:03   

Reply

Marsh Posté le 19-11-2004 à 19:24:20    

masenko a écrit :

Bah alors...
150 = 1 15 150
120 = 1 12 20
1300 = 1 13
 
enfin j en passes des milliers la


http://www.wackyweaselworld.com/flameINC/images/MISC13.gif
 
Regarde donc le post au dessus du tien


Message édité par masklinn le 19-11-2004 à 19:28:22

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 19-11-2004 à 19:25:52    

C'est quoi le problème avec ma solution ?


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 19-11-2004 à 19:31:32    

Nan je répondais a Maslin.
Sinon que j'inverse ou pas c'est la même chose car j'ai pas que 3 chiffres moi j'avais raccourci expres pour simplifier.

Reply

Marsh Posté le 19-11-2004 à 19:34:20    

masenko a écrit :

Nan je répondais a Maslin.
Sinon que j'inverse ou pas c'est la même chose car j'ai pas que 3 chiffres moi j'avais raccourci expres pour simplifier.


 [:mlc]  
t'as essayé au moins?
 
Putain je parie que tu comprends même pas pourquoi ca merde ton truc initial [:jagstang]
 
edit: et c'est Masklinn, pas maslin [:loom the gloom]


Message édité par masklinn le 19-11-2004 à 19:41:40

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 19-11-2004 à 19:39:32    

masenko a écrit :


Sinon que j'inverse ou pas c'est la même chose car j'ai pas que 3 chiffres moi


 
Et alors ? Tant que les plus gros sont au dessus, ils seront interprétés avant.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed