Lentreprenaute Posté 2 Mai 2008 Partager Posté 2 Mai 2008 Bonjour, J'analyse une variable VARX qui recoit un chaine de caractere et je voudrais déclarer une nouvelle variable si le mot clé est trouvée dans la chaine. Mon probleme est que je ne sais pas comment ecrire EFFICACEMENT cela. J'ai plusieurs mots clés qui doivent chacun retourner une variable = valeur différente. - si toto est trouvé dans la chaine VARX new var= XXXX - si titi est trouvé dans la chaine VARX new var= YYYY etc j'ai une quinzaine de cas a gerer. Merci Florent Lien vers le commentaire Partager sur d’autres sites More sharing options...
marcb Posté 2 Mai 2008 Partager Posté 2 Mai 2008 (modifié) Bonjour, Je suppose que tu codes en php... if (strstr($VARX, 'toto')) { $newvar = 'XXXX';} else if (strstr($VARX, 'titi')) { $newvar = 'YYYY';} else { $newvar = '';} Je ne vois pas trop comment faire plus efficace... M Modifié 2 Mai 2008 par marcb Lien vers le commentaire Partager sur d’autres sites More sharing options...
captain_torche Posté 2 Mai 2008 Partager Posté 2 Mai 2008 Je traiterais ça avec un array <?php$tab_search = array( 'toto' => 'XXX', 'titit' => 'YYY', 'tata' => 'ZZZ');$new_var = 'default';foreach($tab_search as $key => $value) { if(strpos($VARX, $key) !== false) $new_var = $value;}?> Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lentreprenaute Posté 2 Mai 2008 Auteur Partager Posté 2 Mai 2008 (modifié) merci pour vos reponses ! Super capitain torche, c'est parfait comme ca. Florent Modifié 2 Mai 2008 par Lentreprenaute Lien vers le commentaire Partager sur d’autres sites More sharing options...
marcb Posté 2 Mai 2008 Partager Posté 2 Mai 2008 Bonsoir, C'est vrai, le code captain a l'avantage de regrouper les éléments 'toto' et 'XXXXX' sur la même ligne. C'est assez lisible. Par contre, pour être efficace, il faudrait peut-être ajouter un break : <?php$tab_search = array( 'toto' => 'XXX', 'titit' => 'YYY', 'tata' => 'ZZZ');$new_var = 'default';foreach($tab_search as $key => $value) { if(strpos($VARX, $key) !== false) { $new_var = $value; break; // <----ici }}?> Sinon tu fais un peu trop de comparaisons... M Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lentreprenaute Posté 2 Mai 2008 Auteur Partager Posté 2 Mai 2008 Que veux tu dire apr trop de comapraisons? Florent Lien vers le commentaire Partager sur d’autres sites More sharing options...
captain_torche Posté 2 Mai 2008 Partager Posté 2 Mai 2008 Dans ma méthode, même si une correspondance est trouvee, on continue tout de même de parcourir l'array. Avec ce que Marcb ajoute, des qu'une correspondance est trouvée, on sort de la boucle, ce qui permet de gagner en temps de traitement. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lentreprenaute Posté 21 Mai 2008 Auteur Partager Posté 21 Mai 2008 Mieux vaut tard que jamais : merci pour l'explication et le code Florent Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant