explode et position dans une chaine

explode et position dans une chaine - PHP - Programmation

Marsh Posté le 09-01-2006 à 22:50:18    

bonsoir,
voila j'ai la chaine de caractere suivante...
"C,H,A,I,N,E"
et je voudrais connaitre la position de la lettre N par rapport aux virgules
 
C=0
H=1
A=2
I=3
N=4
E=5
 
je sais faire l'inverse, ...

Code :
  1. $chaine="C,H,A,I,N,E";
  2. $tableau=explode(',',$chaine);
  3. $ma_lettre_n=$tableau[4];


mais je ne vois pas comment faire dans ce sens    :ange:  
 
merci de votre aide

Reply

Marsh Posté le 09-01-2006 à 22:50:18   

Reply

Marsh Posté le 09-01-2006 à 23:02:39    

Tu as essayé avec la fonction strpos (et un petit décalage) ? évidemment, les lettres composant ta chaine doivent être toutes différentes.

Reply

Marsh Posté le 09-01-2006 à 23:06:35    

non !
certaine lettre peuvent etre en effet les memes et il est possible que ce soit des mots entre les virgules(separatrices)
ex : prix1,prix2,prix3
merci beaucoup de votre aide


Message édité par attentio le 09-01-2006 à 23:07:40
Reply

Marsh Posté le 09-01-2006 à 23:21:03    

Alors, explode ta chaine de caractère puis à l'aide d'une boucle type for, tu compares la sous chaine avec le mot à trouver.

Code :
  1. for($i=0;$i<sizeof($tableau);$i++)
  2. {
  3. if ($tableau[$i]==$le_mot_a_chercher)
  4. echo "position dans le tableau :$i";
  5. }

Reply

Marsh Posté le 10-01-2006 à 03:13:14    

en effet, tout simplement !  
merci beaucoup

Reply

Marsh Posté le 11-01-2006 à 15:29:24    

Code :
  1. substr_count(substr($chaine,0,strpos($chaine,$recherche)-1),',')

Traduction de ce code : on cherche le nombre de caractére virgule dans la partie de la chaine allant du début du texte jusqu'a la premiére occurence de la chaine $recherche.
 
PS : Pas testé donc il faudra peut être rajouter un +1 ou un -1 quelque part, mais en principe, ca te donera directement la bonne réponse.
 
EDIT : A noter que la création d'un tableau qui sera parcouru consomera plus de temps processeur qu'un simple parcours d'une chaine par des fonctions déjà optimisé.


Message édité par omega2 le 11-01-2006 à 15:31:24
Reply

Sujets relatifs:

Leave a Replay

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