remplacement d'une variable par une autre

Hibou51
Invité n'ayant pas de compte PHPfrance

28 févr. 2014, 15:45

Bonjour,
j'ai un tableau de variable du style [jojo]

tab[0]="je"
tab[1]="je t"
tab[2]="mama je heureux"
tab[3]="youhou"
etc..

et un autre avec : [tableau]
tab[0]="tom"
tab[1]="bil"
tab[2]="loulou"
tab[3]="marin"
tab[4]="max"
etc...
et je veux que dès que je rencontre les caracteres "je" dans le premier tableau je le change par le du second
j'ai donc fais ceci :
$b=0;
echo count($jojo); 
foreach ($jojo as &$val ){
	if ($val=='je'){
		$val= $tableau[$b];
		$b=$b+1;
		echo $b;
	}
}
Mais ca ne marche que si la variable entiere de mon tableau [jojo] est égal à 'je' et moi j'aimerai que ca marche pour chaque je compris dans ma variable, sachant que si ma premiere variable est egal à : "je vais bien, je suis heureux"
j'aimerai que ça me donne
"tom va bien, bil est heureux"
(cf: tom=tab[0] et bil= tab[1])

En gros il me faudrait un truc qui me permette de voir si 'je' est compris dans une chaine de caracteres et si c'est le cas changer que le "je" et pas toute la chaine

En espérant avoir été compréhensible, merci

juju87
Invité n'ayant pas de compte PHPfrance

28 févr. 2014, 15:53

$b=0;
echo count($jojo); 
foreach ($jojo as &$val ){
	if (strstr($val, '§§§§§§')){
		$val=str_replace ( '§§§§§§' , $tableau[$b] , $val); 
	//	$val= $tableau[$b];
		$b=$b+1;
		echo $b;
	}
il faut faire comme ceci, mais je pense que si tu as deux fois "je" dans la meme variable il sera remplacé deux fois par la meme valeur du tableau

Hibou51
Invité n'ayant pas de compte PHPfrance

28 févr. 2014, 16:23

Merci, mais effectivement ça ne fonctionne pas comme je le souhaiterais,
comme tu le précises si de "je" se trouvent dans la même variable alors il est changé par la meme valeur du tableau

Comment faire pour solutionner ça SVP

Mammouth du PHP | 2278 Messages

28 févr. 2014, 16:49

Est-ce que je comprends bien:
S'il y a plusieurs occurences de "je" elles sont remplacées par les valeurs successives de l'autre tableau?
Il doit y avoir moyen avec preg_replace puisque les expressions régulières peremmetent de distinguer debut/milieu/fin de chaine à remplacer, quite à en employer plusieurs successivement.
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD