Afficher les lignes contenant uniquement cette chaine de caractères

spouiik
WRInaute discret
WRInaute discret
 
Messages: 89
Inscription: 19 Fév 2008

Afficher les lignes contenant uniquement cette chaine de caractères

Message le Lun Mai 24, 2010 14:37

Bonjour,
Je cherche a faire exactement ce que j'ai mis dans le titre de ce poste, c'est à dire "Afficher les lignes contenant uniquement cette chaine de caractères".
Je m'explique :
J'ai un tableau généré via traitement php d'un fichier csv, jusque là nikel, maintenant je voudrai pouvoir avoir un champ dans lequel je met une chaine de caractère, et que le contenu du tableau soit filtré pour n'afficher que les lignes contenant cette chaine.
Je pense qu'il a un bien un truc permettant de faire ça mais je trouve rien.
Si vous pouviez me filer un coup de mains.

Merci.

silef
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 317
Inscription: 13 Jan 2006

Re: Afficher les lignes contenant uniquement cette chaine de caractères

Message le Lun Mai 24, 2010 16:41

Je ne suis pas certain d'avoir bien compris mais perso je regarderais du coté de la fonction strpos() que j'intègrerais dans ton traitement des données.

spouiik
WRInaute discret
WRInaute discret
 
Messages: 89
Inscription: 19 Fév 2008

Re: Afficher les lignes contenant uniquement cette chaine de caractères

Message le Lun Mai 24, 2010 16:55

Merci pour ta réponse, mais je ne pense pas que ce sois ce que je cherche, enfaite, je veux faire un post traitement sur mon tableau pour qu'il ne contiennent que des lignes comportant des champs de caractères spécifiques.
Par exemple j'ai dans mon tableau
ligne 1 colonne 1 : bateau
ligne 2 colonne 1 : rateau
ligne 3 colonne 1 : maison

=> si dans mon champs recherche je tape "teau" le tri du tableau s'effectue pour ne comporter que la ligne 1 et 2.

J'espère être plus claire.

Merci


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8565
Inscription: 23 Nov 2005

Re: Afficher les lignes contenant uniquement cette chaine de caractères

Message le Lun Mai 24, 2010 17:01

J'utiliserais cette fonction php : http://www.php.net/manual/en/function.array-filter.php

Et strpos dans la fonction de callback pour savoir si je dois garder ou pas la valeur sur laquelle l'itération est en cours.


Zecat
WRInaute accro
WRInaute accro
 
Messages: 11990
Inscription: 1 Mar 2005

Re: Afficher les lignes contenant uniquement cette chaine de caractères

Message le Lun Mai 24, 2010 17:12

Attention avec strpos à tenir compte du bug lorsque la chaine est trouvée en debut de chaine (position 0) ... :wink:


medium69
WRInaute passionné
WRInaute passionné
 
Messages: 2485
Inscription: 7 Mai 2005

Re: Afficher les lignes contenant uniquement cette chaine de caractères

Message le Lun Mai 24, 2010 19:29

Zecat a écrit:Attention avec strpos à tenir compte du bug lorsque la chaine est trouvée en debut de chaine (position 0) ... :wink:


On le contourne en testant avec === ou !== selon ce que l'on veut.

de plus, il est bcp moins gourmand que les preg_match


Zecat
WRInaute accro
WRInaute accro
 
Messages: 11990
Inscription: 1 Mar 2005

Re: Afficher les lignes contenant uniquement cette chaine de caractères

Message le Lun Mai 24, 2010 20:43

medium69 a écrit:
Zecat a écrit:Attention avec strpos à tenir compte du bug lorsque la chaine est trouvée en debut de chaine (position 0) ... :wink:


On le contourne en testant avec === ou !== selon ce que l'on veut.

de plus, il est bcp moins gourmand que les preg_match

ah je savais pas le === (moi je me cassais pas le fion je fais un '*'.$texte :mrgreen: Comme ca plus de resultats en position 0 par definition :roll:


medium69
WRInaute passionné
WRInaute passionné
 
Messages: 2485
Inscription: 7 Mai 2005

Re: Afficher les lignes contenant uniquement cette chaine de caractères

Message le Lun Mai 24, 2010 20:48

Tiens voilà le liens qui t'explique tout cela : http://fr.php.net/manual/fr/function.strpos.php

ainsi, si tu es en position 0, avec cela tu as la valeur TRUE (=== vaut TRUE et est de même type - booléen dans notre cas.

!== veut dire FALSE et de même type ; donc 0 retournera TRUE et non FALSE.

Par contre, != indique FALSE, 0, ou une chaîne vide.

Voilà pourquoi il faut aussi vérifier le type avec cette fonction.


Zecat
WRInaute accro
WRInaute accro
 
Messages: 11990
Inscription: 1 Mar 2005

Re: Afficher les lignes contenant uniquement cette chaine de caractères

Message le Lun Mai 24, 2010 23:00

bon effectivement faut que je pense a lire ce qui est ecrit en dessous ... plus bas dan sl apage :mrgreen:

Bon finalement mon "*" ajoutée devant, ca le fait bien aussi :wink: (pas réglementaire mais ca le fait)


anemone-clown
WRInaute passionné
WRInaute passionné
 
Messages: 1275
Inscription: 11 Nov 2007

Re: Afficher les lignes contenant uniquement cette chaine de caractères

Message le Mar Mai 25, 2010 11:12

Zecat a écrit:Attention avec strpos à tenir compte du bug lorsque la chaine est trouvée en debut de chaine (position 0) ... :wink:

Va falloir passer à php niveau 2... :mrgreen:
Code: Tout sélectionner
if strpos(...) > -1

Explication : si le résultat n'est pas numérique (0 et plus), le test renvoie false. Un résultat booléen renvoie false sur un test numérique. Le test numérique est un peu plus lent qu'un test purement booléen mais restera infiniment plus rapide que la manipulation de chaîne de caractères.

Sinon : array_filter, ça a été dit.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité