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 :

unset, problème de boucle


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 93
    Par défaut unset, problème de boucle
    Bonjour,
    Je travail sur un moteur de recherche, et j'aimerais exclure certain mot de la variable clé à rechercher.

    Pour cela je prends le contenue de mon champs et je l'explode. Ensuite j'aimerais enlever les mots inutiles.

    Mon problème
    : La boucle for ne va pas jusqu'au bout, dès qu'elle trouve un mot qu'il faut conserver elle s'arrête. Pourquoi ? Je pense que c'est le Unset(), mais n'en suis pas sure. Je ne comprends pas bien comment il fonctionne sur http://www.php.net/manual/fr/function.unset.php

    Mon code :
    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
     
    // Mot clé tapés : "dans les du le technologie des la"
    echo"avant : <pre>";
            print_r($mot_recherche); //le tableau des mots clé tapés
            echo"</pre>";
     
            // Verifier que $mot_recherche ne contient pas de mot à exlure ou d'espace   
            echo "<br /> nb mot : ".count($mot_recherche);
            for($i=0; $i<count($mot_recherche); $i++){
                echo "<br />nb passage :".$i ;
                if(array_search($mot_recherche[$i], $mot_a_exclure)){ 
                    unset($mot_recherche[$i]);
                }       
            }
     
     
             echo"<br /><br /><br />après : <pre>";
            print_r($mot_recherche);
            echo"</pre>";
    Mon résultat à l'écran :

    avant :

    Array
    (
    [0] => dans
    [1] => les
    [2] => du
    [3] => le
    [4] => technologie
    [5] => des
    [6] => la
    )


    nb mot : 7
    nb passage :0
    nb passage :1
    nb passage :2
    nb passage :3


    après :

    Array
    (
    [4] => technologie
    [5] => des
    [6] => la
    )

  2. #2
    Membre confirmé Avatar de hiul dragonfel
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 199
    Par défaut
    euh tu peux pas faire l'inverse ?

    enregistrer le mot dans une nouvelle variable et après la boucle faire un unset du premier tableau ?

  3. #3
    Membre confirmé Avatar de greg13
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 144
    Par défaut
    C'est parce que tu recalcules la taille du tableau dans le fort que la boucle s'arrete.
    Ce que je propose, mais je ne suis pas certain que ça va fonctionner:

    Code php : 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
     
     
    // Mot clé tapés : "dans les du le technologie des la"
    echo"avant : <pre>";
            print_r($mot_recherche); //le tableau des mots clé tapés
            echo"</pre>";
     
            // Verifier que $mot_recherche ne contient pas de mot à exlure ou d'espace   
            echo "<br /> nb mot : ".count($mot_recherche);
            foreach($mot_recherche as $key => $value){
                if(in_array($value, $mot_a_exclure)){
                    unset($mot_recherche[$key]);
                }
            }
     
             echo"<br /><br /><br />après : <pre>";
            print_r($mot_recherche);
            echo"</pre>";

    Si ça ne fonctionne pas, j'ai d'autres idées...

Discussions similaires

  1. Problème de boucles imbriquées
    Par Gnux dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 09/12/2005, 20h26
  2. [Tableaux] Problème avec boucle
    Par MYster dans le forum Langage
    Réponses: 6
    Dernier message: 11/11/2005, 18h39
  3. Problème de boucle
    Par TheUltimaSephiroth dans le forum C
    Réponses: 8
    Dernier message: 10/10/2005, 13h58
  4. Problème de boucle
    Par Louis-Guillaume Morand dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/09/2005, 09h10
  5. Problème de boucle
    Par basclln dans le forum C++
    Réponses: 19
    Dernier message: 02/04/2005, 09h13

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