PHP - recherche chaine dans tableau
Fermé
vixell
Messages postés
23
Date d'inscription
dimanche 29 décembre 2002
Statut
Membre
Dernière intervention
18 février 2009
-
28 juil. 2008 à 12:10
vixell Messages postés 23 Date d'inscription dimanche 29 décembre 2002 Statut Membre Dernière intervention 18 février 2009 - 29 juil. 2008 à 11:10
vixell Messages postés 23 Date d'inscription dimanche 29 décembre 2002 Statut Membre Dernière intervention 18 février 2009 - 29 juil. 2008 à 11:10
A voir également:
- PHP - recherche chaine dans tableau
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Recherche musique - Guide
- Tableau word - Guide
4 réponses
el_linwin
Messages postés
519
Date d'inscription
vendredi 25 juillet 2008
Statut
Membre
Dernière intervention
16 août 2008
90
28 juil. 2008 à 12:20
28 juil. 2008 à 12:20
Bonjour vixell,
Dans votre ligne de test, vous faites référence à $dataMailing, qui est censé servir de tableau dans lequel on va rechercher la séquence "%".$rechercher."%".
Or, lorsque je vois votre code, la liste des adresses est stockée dans $tab1, pas dans $dataMailing. De plus, la façon de stocker les informations dans le tableau correspond à la forme: [numéro entrée];[adresse email];[date]
Cela me semble incompatible avec la formulation "%".$rechercher."%" qui est normalement interprétée de façon littérale par in_array, donc avec le symbole '%' au début et à la fin de la chaîne, et en plus, sans le moindre point-virgule, pour doublement présents dans chaque chaîne de caractère de votre tableau...
Cordialement,
el_linwin
Dans votre ligne de test, vous faites référence à $dataMailing, qui est censé servir de tableau dans lequel on va rechercher la séquence "%".$rechercher."%".
Or, lorsque je vois votre code, la liste des adresses est stockée dans $tab1, pas dans $dataMailing. De plus, la façon de stocker les informations dans le tableau correspond à la forme: [numéro entrée];[adresse email];[date]
Cela me semble incompatible avec la formulation "%".$rechercher."%" qui est normalement interprétée de façon littérale par in_array, donc avec le symbole '%' au début et à la fin de la chaîne, et en plus, sans le moindre point-virgule, pour doublement présents dans chaque chaîne de caractère de votre tableau...
Cordialement,
el_linwin
vixell
Messages postés
23
Date d'inscription
dimanche 29 décembre 2002
Statut
Membre
Dernière intervention
18 février 2009
28 juil. 2008 à 14:05
28 juil. 2008 à 14:05
pour ce qui est du nom du tableau, j'ai rectifié mon POST et effectivement il s'agit bien de $tab1.
Ensuite, j'ai recherché le moyen d'utiliser des caractères "joker" afin de considérer le texte recherché tel un expression qui pourrait contenir des caractères afin et après l'expression (comme on le fait dans du sql).
A priori, qi je comprend bien ce que vous écrivez, le "%" n'est pas un caractère joker...
Mais alors comment pourrait on faire ?
Ensuite, j'ai recherché le moyen d'utiliser des caractères "joker" afin de considérer le texte recherché tel un expression qui pourrait contenir des caractères afin et après l'expression (comme on le fait dans du sql).
A priori, qi je comprend bien ce que vous écrivez, le "%" n'est pas un caractère joker...
Mais alors comment pourrait on faire ?
el_linwin
Messages postés
519
Date d'inscription
vendredi 25 juillet 2008
Statut
Membre
Dernière intervention
16 août 2008
90
28 juil. 2008 à 14:37
28 juil. 2008 à 14:37
Bonjour vixell,
Pour in_array, le % n'est pas un caractère joker, il est compris littéralement.
Si je comprends bien la procédure, c'est l'adresse email à rechercher qui est contenue dans $rechercher.
Si c'est le cas, une possibilité est de créer 2 tableaux au lieu d'un:
// $tab1 contient les adresses email
$tab1=array("adresse@mail.com","adresse2@mail.com","adresse3@mail.com");
// $tab2 contient les dates
$tab2=array("20080729","20080729","20080729");
Les indices n'ont plus besoin d'être dans le tableau, vu qu'il faut connaître l'indice pour accéder à un élément. Ensuite, le test s'effectuerait ainsi:
$rechercher=$col[2];
if (in_array($rechercher,$tab1)) {action1;} else {action2;}
Cordialement,
el_linwin
Pour in_array, le % n'est pas un caractère joker, il est compris littéralement.
Si je comprends bien la procédure, c'est l'adresse email à rechercher qui est contenue dans $rechercher.
Si c'est le cas, une possibilité est de créer 2 tableaux au lieu d'un:
// $tab1 contient les adresses email
$tab1=array("adresse@mail.com","adresse2@mail.com","adresse3@mail.com");
// $tab2 contient les dates
$tab2=array("20080729","20080729","20080729");
Les indices n'ont plus besoin d'être dans le tableau, vu qu'il faut connaître l'indice pour accéder à un élément. Ensuite, le test s'effectuerait ainsi:
$rechercher=$col[2];
if (in_array($rechercher,$tab1)) {action1;} else {action2;}
Cordialement,
el_linwin
vixell
Messages postés
23
Date d'inscription
dimanche 29 décembre 2002
Statut
Membre
Dernière intervention
18 février 2009
29 juil. 2008 à 11:10
29 juil. 2008 à 11:10
ok. Sauf que ensuite il y a un traitement à faire et celui-ci dépend de l'ID de l'adresse email.
Donc deux possibilité soit refaire un requetage SQL soit deuxième comparaison avec un autre tableau : le même que celui que tu as créé (qui contient que les mails) mais avec les ID...
Je cherchais une solution directe pour économiser le serveur....
Je me disais peut être que PHP avait une fonction déjà toute faite ou avait prévu l'utilisation de caractères jocker...
Merci el_linWin
Donc deux possibilité soit refaire un requetage SQL soit deuxième comparaison avec un autre tableau : le même que celui que tu as créé (qui contient que les mails) mais avec les ID...
Je cherchais une solution directe pour économiser le serveur....
Je me disais peut être que PHP avait une fonction déjà toute faite ou avait prévu l'utilisation de caractères jocker...
Merci el_linWin