Concaténation séparation entre tableau

cs_alexius Messages postés 20 Date d'inscription mardi 6 janvier 2004 Statut Membre Dernière intervention 19 juillet 2007 - 2 mai 2006 à 20:03
cs_spyro666 Messages postés 137 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 28 août 2007 - 5 mai 2006 à 13:55
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

1 réponse

cs_spyro666 Messages postés 137 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 28 août 2007
5 mai 2006 à 13:55
Commence peut-être par un explode pour déjà séparer les différents éléments, le traitement sera d'autant plus simple je pense(ta lecture lettre par lettre tombe déjà). Ensuite pour les tests c'est quasiment la même chose.

Spyro666 contre le 555
Rejoignez-nous