IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

in_array en recherche [PHP 5.2]


Sujet :

Langage PHP

  1. #1
    Invité
    Invité(e)
    Par défaut in_array en recherche
    Bonjour,
    Je sais utiliser in_array pour contrôler dans une liste si un des élément
    de mon array égal la valeur en cour de traitement.

    Mais mon probléme est que je souhaite le faire sur des phrases lues une par une et pouvant contenir un des mot de l'array (O/N) ...

    Si je cherchais un terme comme "maison" un simple strpos aurait convenu
    mais dans mon cas, je lis une base de donnée et dans mon while, je doit chercher pour chaque phrase si l' UN (au moins un) des terme
    'maison' 'jardin' 'cuisine' etc ... est présent

    Pouvez vous m'aider
    Merci

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    Je pense qu'il serait préférable d'utiliser directement les outils fournis par le moteur de base de données car ces derniers sont sacrément optimisés pour la recherche textuelle à la différence de PHP avec while(). Regardes ici

  3. #3
    Invité
    Invité(e)
    Par défaut
    Oui avec MATCH,
    Mais je te dois plein d'escuses, car mon application est complexe et mon "moteur" marche alternativement sur du SQL et sur des fichiers textes.
    J' aurais due le dire de suite
    donc pour les fichiers texte je me retrouves dans un FOR xxxxx !

    Voila (mais j'ais pris bonne note pour les SQL)

  4. #4
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Ok, le plus simple c'est de faire pour chaque phrase :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $words = explode(' ', $str);
    $found = array_intersect($words, $to_seek); // $to_seek = tableau des mots clés à trouver

  5. #5
    Invité
    Invité(e)
    Par défaut
    Décidément je te fais travailler, car j'ais bien des cas ou se trouve
    "xxxxxxxxxx xxxxxxxxxxx,cuisine/buanderie xxxxx etc..."
    Bref un texte incontrolable j'(en convient, mais ce n'est pas moi qui la saisies

  6. #6
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Texte incontrôlable dis-tu, alors ça devient plus compliqué : en php tu as à ta disposition similar_text() qui pourrait te dépanner mais je ne l'ai jamais utilisé.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Merci encore, similar ne marche pas alors je me replis sur la grosse quincaillerie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
      for($a=0;$a<=$NbrLigne;$a++)
       {
        $garde=0; // ==== on garde pas
        $LeType = array('maison','jardin','cuisine','buanderie');
        for($at=0;$at<4;$at++)
         {
          $flag=strpos($luiactu[$a], $LeType[$at]) ;
          if ($flag >0 ) $garde=99; // ==== on garde
         }
        if ($garde==99)
         {
          //=========== traitement
          }

  8. #8
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Tu peux améliorer ton bout de code ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?php
     
    $needles = array('maison', 'jardin', 'cuisine', 'buanderie');
    $matches = array();
     
    for($i = 0; $i <= $NbrLigne; ++$i) {
       foreach($needles as $needle) {
          if (false !== stripos($luiactu[$i], $needle)) {
             $matches[] = $i;
             break;   // dès qu'un mot est trouvé on garde l'id quels que soient les mots suivants
          }
       }
    }
     
    foreach($matches as $match) {
       ...
    }
     
    ?>
    Fais bien attention stripos() ou strpos() ne sont pas compatible utf-8

  9. #9
    Invité
    Invité(e)
    Par défaut
    Merci encore
    oui stripos() ou strpos() je savais ...
    A++ Christele

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. recherche dans un tableau in_array
    Par steven78700 dans le forum Langage
    Réponses: 3
    Dernier message: 14/02/2011, 12h04
  2. [MySQL] Faire une recherche dans un tableau créer par mysql_fetch_array avec in_array
    Par arnaudperfect dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 12/11/2007, 16h13
  3. recherches des cours ou des explications sur les algorithmes
    Par Marcus2211 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 19/05/2002, 23h18
  4. [PRO*C] Recherche information
    Par Anonymous dans le forum Interfaces de programmation
    Réponses: 2
    Dernier message: 04/04/2002, 18h53
  5. Recherche de documentation complète en algorithmes
    Par Anonymous dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 29/03/2002, 13h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo