Remplcer les chiffres par les lettres

Mammouth du PHP | 725 Messages

31 janv. 2012, 06:05

Bonjour,

Je voudrais remplacer mes chiffres par des lettres, mais il y a une confusion:
$chif = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
$let = array('un', 'deux', 'trois', 'quatre', 'cinq', 'six', 'sept', 'huit', 'neuf', 'dix');

$phrase = 'j ai 10 livres';
echo str_replace($chif, $let, $phrase); // resultat: j ai unzero livre
comment puis je resoudre ce probleme?

merci

ViPHP
ViPHP | 2287 Messages

31 janv. 2012, 06:20

Bonjour,

Je voudrais remplacer mes chiffres par des lettres, mais il y a une confusion:
$chif = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
$let = array('un', 'deux', 'trois', 'quatre', 'cinq', 'six', 'sept', 'huit', 'neuf', 'dix');

$phrase = 'j ai 10 livres';
echo str_replace($chif, $let, $phrase); // resultat: j ai unzero livre
comment puis je resoudre ce probleme?

merci
Simple, inverse l'ordre de tes tableaux de remplacement :)

Ou bien laisse php le faire pour toi : http://fr.php.net/array_reverse
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Mammouth du PHP | 2278 Messages

31 janv. 2012, 12:37

et si la phrase est "si 100 scient 100 cigares, 606 scies scieront 606 c igares" ?

Traiter le cas particulier proposé risque fort de conduire à découvrir que cette solution ne fonctionne pas dans d'autres cas...
Une solution passerait sûrement par une réflexion sur le cas général de conversion de nombres en textes, avec une intégration correcte des accords et des traits d'union. Ça doit traîner partout sur internet...
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

31 janv. 2012, 12:53

Il en faut peu pour être heureux ......

Mammouth du PHP | 725 Messages

31 janv. 2012, 12:59

donc c'est quoi la bonne solution?

Eléphant du PHP | 209 Messages

31 janv. 2012, 13:10

Salut,

Il y a une contribution sur ce sujet : vos-contributions/conversion-nombres-le ... 60825.html

Ça devrait te donner une réponse ;)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

31 janv. 2012, 13:17

Celle que tu aura testé et validé à ta convenance !

On peut faire tout ton taf. Tu a testé la limite du str_replace toi même, il te reste à tester les autres. Cela dépend de ton CdC et on ne peut le savoir mieux que toi ;)

@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 2278 Messages

31 janv. 2012, 14:18

à part que intl ne fait pas le travail demandé.
Il reste la contribution sur NUTS qui semble très puissant
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Mammouth du PHP | 725 Messages

01 févr. 2012, 06:22

j'ai termine par inverser: 10, 9, ... et dix, neuf,..

merci