[PHP] Convertir un chiffre en lettre

Convertir un chiffre en lettre [PHP] - PHP - Programmation

Marsh Posté le 28-10-2003 à 12:15:12    

Bonjour,
 
J'ai une variable qui contient un chiffre et je voudrais la transformer par la lettre qui lui correspond :
1 -> A
2 -> B
et ainsi de suite
 
Quelqu'un a une idée a par le switch  :ange:  
 
Merci
 :hello:  

Reply

Marsh Posté le 28-10-2003 à 12:15:12   

Reply

Marsh Posté le 28-10-2003 à 12:25:52    

J'ai trouvé une solution qui m'evite le switch, mais il y as surment encore plus simple que ça :
 

Code :
  1. $alphabet=array('','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
  2. $nombre=0;
  3. while($nombre!=26){
  4. $nombre++;
  5. $lettre="{$alphabet[$nombre]}";
  6. echo "{$nombre} -> {$lettre}";
  7. }


Message édité par bozocarzu le 28-10-2003 à 12:26:54
Reply

Marsh Posté le 28-10-2003 à 12:44:51    

En une ligne :

Code :
  1. $lettre = chr($number + ord('A') - 1);


Message édité par slaanesh le 28-10-2003 à 12:47:59

---------------
Ne remets pas à demain ce que tu peux faire après-demain ! :sol:
Reply

Marsh Posté le 28-10-2003 à 13:21:15    

Code :
  1. $chiffre  = (strtoupper(ord($lettre)) - strtoupper(ord('A'))) + 1;


 
Si $lettre = A -> chiffre sera = 1
Si $lettre = B -> chiffre sera = 2
 
P.S.: le strtoupper c'est pour etre sur qu'on ait tjrs une maj :o au cas ou il entre une lettre min :o
 
etc...
 
et le +1 c'est pour pas que la premiere lettre ( A ) soit 0, c faculatif :o ca depend de ce qu'il veut :o
 
qui dit mieux ? :o


Message édité par _maximus_ le 28-10-2003 à 13:22:36

---------------
Ptit con de goret je t'emmerde ^_^
Reply

Marsh Posté le 28-10-2003 à 15:01:19    

_Maximus_ a écrit :

Code :
  1. $chiffre  = (strtoupper(ord($lettre)) - strtoupper(ord('A'))) + 1;




 
Ca serait pas plutôt ça pour obtenir le chiffre correspondant à la lettre :

Code :
  1. $chiffre  = ord(strtoupper($lettre)) - ord('A') + 1;


 
Et py le monsieur il demandait l'inverse : la lettre correspondant à un chiffre ;)


Message édité par slaanesh le 28-10-2003 à 16:03:58

---------------
Ne remets pas à demain ce que tu peux faire après-demain ! :sol:
Reply

Marsh Posté le 28-10-2003 à 15:05:03    

arf oué t'as raison :)
ben a ce moment la :  
 
$lettre = chr($chiffre + ord('A') - 1);
 
me parrait la meilleure solution ^^
 
autant pour moi.


---------------
Ptit con de goret je t'emmerde ^_^
Reply

Marsh Posté le 28-10-2003 à 16:07:04    

au lieu d'utiliser ord('A'), autant utiliser directement 65...

Reply

Marsh Posté le 28-10-2003 à 16:18:53    

MagicBuzz a écrit :

au lieu d'utiliser ord('A'), autant utiliser directement 65...


 
C'est sûr mais le ord('A') et plus parlant qu'un simple 65 je trouve....
enfin perso je connais pas par coeur toute la table ascii donc bon ;)


---------------
Ne remets pas à demain ce que tu peux faire après-demain ! :sol:
Reply

Marsh Posté le 28-10-2003 à 16:41:06    

Slaanesh a écrit :


 
C'est sûr mais le ord('A') et plus parlant qu'un simple 65 je trouve....
enfin perso je connais pas par coeur toute la table ascii donc bon ;)


moi non plus, mais un petit VBS "msgbox asc("A" )" est ton ami :D

Reply

Marsh Posté le 28-10-2003 à 16:49:40    

donc on est bien d'accord ca ne sert à rien au niveau du code si ce n'est à rendre un peu plus difficile la lecture du code....


---------------
Ne remets pas à demain ce que tu peux faire après-demain ! :sol:
Reply

Marsh Posté le 28-10-2003 à 16:49:40   

Reply

Marsh Posté le 01-11-2003 à 16:21:18    

Merci de vos reponse,  
J'ai pris $lettre = chr($number + ord('A') - 1); comme solution, c'est se qui me parait le plus simple  
 :jap:

Reply

Sujets relatifs:

Leave a Replay

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