Page 1 sur 1
Inverser une chaine mais pas tous les mots a l'envers.
Posté : 23 avr. 2014, 12:39
par raphy31
Bonjour @tous!
Voila je fais une mise a jour d'une table ou des adresses ont été rentré comme ceci :
MARECHAL FOSH - RUE DE
ET je souhaiterais le replacé comme suit :
RUE DE MARECHAL FOSH
Voilou..
MERCI pour votre help!
Re: Inverser une chaine mais pas tous les mots a l'envers.
Posté : 23 avr. 2014, 13:09
par xTG
Tu utilises explode() sur le tiret, tu obtiens un array avec deux index (tes deux chaînes).
Plus qu'à les inverser et le tour est joué.

Re: Inverser une chaine mais pas tous les mots a l'envers.
Posté : 23 avr. 2014, 13:13
par Aureusms
As tu toujours le "-" ?
Si oui, essayes vers explode()
<?php
$string = "MARECHAL FOSH - RUE DE";
$tab = explode ("-",$string);
$newString = trim($tab[1])." ".trim($tab[0]);
echo $newString;
?>
Explode() te créer un tableau, trim() efface les éventuels espaces qui résident.
NOte : xTg trop rapide
Re: Inverser une chaine mais pas tous les mots a l'envers.
Posté : 23 avr. 2014, 14:50
par raphy31
je l'ai toujours mais ca depend EFFECTIVEMENT, y en a qu'y sont bien rentrés d'autres non.
EFFECTIVEMENT ça fonctionne, mais ca donne quoi si une adresse est deja bien rentré (ca va changé ou non?)
merci de votre rapidité, et de votre aide

Re: Inverser une chaine mais pas tous les mots a l'envers.
Posté : 23 avr. 2014, 15:48
par xTG
Si les adresses sont correctement rentrées cela va te les mettre dans le mauvais ordre évidemment.
Si tu ne sais pas différencier une mauvaise adresse d'une bonne tu ne pourras rien automatiser.

Re: Inverser une chaine mais pas tous les mots a l'envers.
Posté : 23 avr. 2014, 18:10
par sirakawa
Il faudrait peut-être énumérer tous les trucs possibles du genre:
rue
avenue
place
square
venelle
qui devraient se trouver en début
et chercher si l'un d'entre eux se trouve au début: dans ce cas, on ne fait rien
S'il ne se trouve pas au début mais en N, nettoyer l'adresse pour enlever le tiret, et déplacer ce qui se trouve à partir de N.
Re: Inverser une chaine mais pas tous les mots a l'envers.
Posté : 24 avr. 2014, 08:06
par raphy31
ok oue donc galere on peu pas faire
if($chaine contient un -) on met dans l'ordre...?
Re: Inverser une chaine mais pas tous les mots a l'envers.
Posté : 24 avr. 2014, 08:21
par xTG
Et le "on met dans l'ordre" tu le définis comment ?
L'algorithmie c'est pas magique.
Ce que propose
sirakawa est une bonne piste pour identifier si c'est dans l'ordre ou non.