Bonjours à tous, dans le cadre d'une application que je réalise je suis confronté a séparer des donner concaténan dans des tableau différents, je vous laisse le code afin que compreniez mieu...
Mon problème: je n'arrive pas à decouper correctement la chaine et a répartir les valeurs coreectement, les $addinquerry servent dans des requète plu loin dans le programe..
pour info je recupère une chaîne qui peut avoir cette forme:
C_1/C_2/P_1/P_56/P_8/R_2/R5/R_19
if ($this -> indice_localite == $i) //champs localité de l'evenement
{
$str = $rows[$this->tabChamp[1][$i]];
//$liste_zones = explode('/',$rows[$this->tabChamp[1][$i]]);
//echo $liste_zones[0];
//on initialise
$local = array();
$local2 = array();
$local3 = array();
$add_in_query1 = '';
$add_in_query2 = '';
$add_in_querry3 = '';
//traitement multicritère de la chaine zone concaténé
$positionement=0;//position de la premier caractère, au depart 0 debut de la chaine)
$nb_zone=0;//Nombre d'element dans la chaine, au depart il n'y en a aucun
for($i=0;$i<=strlen($str);$i++)
{/*on parcours la chaine(volontairement une lettre apres le dernier carctere pour gerer le dernier mot dans la boucle)*/
if(substr($str,$i,1)=="/" || substr($str,$i,1)=="")
{//on arrive a la fin d'element(separateur "/") ou en fin de chaine
$len = $i-$positionement;//longueur de l'element trouver
//$zone = substr($str,$positionement,$len);
if (substr($str,$i,1) == 'C')
{
$continent_array[$nb_zone++] = substr($str,$positionement,$len);
//echo "ca marche se truc ou merde!!!";
$add_in_query3 = implode ('|', $continent_array);
}
if (substr($zones,0,1) == 'P')
{
$pays_array[$nb_zone++] = substr($str,$positionement,$len);
$add_in_query1 = implode ('|', $pays_array);
}
if (substr($zones,0,1) == 'R')
{
$region_array[$nb_zone++] = substr($str,$positionement,$len);
$add_in_query2 = implode ('|', $region_array);
}
$positionement=$i+1;//Reinitialisation de la position du nouvel élément
}
}
Je souhaiterai pouvoir retrouver par exemple C_1|C_2 par un echo de $add_in_query3
Merci d'avance
Alexis