Afficher les lignes contenant uniquement cette chaine de caractères
10 messages
• Page 1 sur 1
- spouiik
- WRInaute discret

- Messages: 89
- Inscription: 19 Fév 2008
Afficher les lignes contenant uniquement cette chaine de caractères
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.
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.
- spouiik
- WRInaute discret

- Messages: 89
- Inscription: 19 Fév 2008
Re: Afficher les lignes contenant uniquement cette chaine de caractères
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
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

- Messages: 8565
- Inscription: 23 Nov 2005
Re: Afficher les lignes contenant uniquement cette chaine de caractères
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.
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.
-

medium69 - WRInaute passionné

- Messages: 2485
- Inscription: 7 Mai 2005
Re: Afficher les lignes contenant uniquement cette chaine de caractères
Zecat a écrit:Attention avec strpos à tenir compte du bug lorsque la chaine est trouvée en debut de chaine (position 0) ...
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

- Messages: 11990
- Inscription: 1 Mar 2005
Re: Afficher les lignes contenant uniquement cette chaine de caractères
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) ...
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
-

medium69 - WRInaute passionné

- Messages: 2485
- Inscription: 7 Mai 2005
Re: Afficher les lignes contenant uniquement cette chaine de caractères
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.
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

- Messages: 11990
- Inscription: 1 Mar 2005
Re: Afficher les lignes contenant uniquement cette chaine de caractères
bon effectivement faut que je pense a lire ce qui est ecrit en dessous ... plus bas dan sl apage
Bon finalement mon "*" ajoutée devant, ca le fait bien aussi
(pas réglementaire mais ca le fait)
Bon finalement mon "*" ajoutée devant, ca le fait bien aussi
-

anemone-clown - WRInaute passionné

- Messages: 1275
- Inscription: 11 Nov 2007
Re: Afficher les lignes contenant uniquement cette chaine de caractères
Zecat a écrit:Attention avec strpos à tenir compte du bug lorsque la chaine est trouvée en debut de chaine (position 0) ...
Va falloir passer à php niveau 2...
- 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.
10 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- [REGEX] une chaine contenant une autre chaine
- Redirection d'Urls contenant une certaine chaine
- Réécriture d'une chaîne contenant des espaces dans RewriteRule
- Les .eu contenant des caractères spéciaux seront disponibles le 10/12
- Extraire une chaine de caractères
- Couper une chaine de caractères
- fractionner une chaine de caractères
- Compter le nombre de caractères d'une chaine
- rewriting avec une variable de chaîne de caractères
- PHP et MagpieRSS, couper une chaine de caractères
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

