furious Gontran Posté 30 Décembre 2004 Posté 30 Décembre 2004 (modifié) Re... Pour un moteur de recherche, j'elimine les mots non significatifs par un explode et une serie de boucle for: Lorsqu'un mot non signifiant est trouvé je fais: $Mot[$o]=""; Le soucis est que mon tableau contient ensuite des valeurs vides. Je n'ais pas trouvé de fonction permettant de supprimer ces valeurs de mon tableau...en existe t'il une ? Voici le code au cas ou: $Nonpert=array("le", "la", "les", "de", "des", "et", "l", "a", "que", "qui"); $Mot=explode(" ", $Mots); for ($i=0;$i<=10;$i++) { for ($o=0;$o<sizeof($Mot);$o++) { if ($Mot[$o]==$Nonpert[$i]) { $Mot[$o]=""; } } } Je rajoute une question ici pour eviter un autre sujet... Comment faire au sein d'une boucle for pour determiner des variables nommé: je veux decouper les valeurs de mon tableau en variable unique. Ces variables idealement nommées $mot1, $mot2, $mot3 dans la limite du sizeof($Mot). quelle syntaxe utiliser ? si je fais $mot.$i par exemple, ca marche ?? ($i etant la variable de la boucle for) Modifié 30 Décembre 2004 par furious Gontran
Jok Posté 30 Décembre 2004 Posté 30 Décembre 2004 Il faut que tu repere l'endroit ou tu as un espace vide puis ensuite tu le supprime : function suppr($tab, $element) { array_splice ($tab, $element, 1); return $tab;} Pour ta deuxieme question, utilise la fonction eval de php : eval("\$mot".$i." = 'le contenu de ta variable';"); Eval évalue le contenu de ce que tu lui passe en parametre. Si tu lui passe : eval("\$toto=1;"); La variable $toto sera créé et contiendra la valeur 1.
Fuleran Posté 30 Décembre 2004 Posté 30 Décembre 2004 Re... Pour un moteur de recherche, j'elimine les mots non significatifs par un explode et une serie de boucle for: Lorsqu'un mot non signifiant est trouvé je fais: $Mot[$o]=""; Le soucis est que mon tableau contient ensuite des valeurs vides. Je n'ais pas trouvé de fonction permettant de supprimer ces valeurs de mon tableau...en existe t'il une ? Bonjour, personnellement au lieu de mettre ta case à vide je la détruirai directement avec un unset. Par contre, comme l'index de ton tableau va devenir non linéaire, j'utiliserais plutot foreach pour le parcourir... Benoit
petit-ourson Posté 30 Décembre 2004 Posté 30 Décembre 2004 si je fais $mot.$i par exemple, ca marche ??($i etant la variable de la boucle for) <{POST_SNAPBACK}> Ou avec un ${$mot.$1} = "tavaleur"; Ca devrait marcher. Pour le tableau, je ferai pareil que fuleran à savoir détruire les cases plutot que les mettre vide.
furious Gontran Posté 4 Janvier 2005 Auteur Posté 4 Janvier 2005 Merci bien. Je vais tenter ca comme ca. Par contre j'ais un peu de mal a voir comment utiliser foreach mais j'vais m'y mettre.
Dan Posté 4 Janvier 2005 Posté 4 Janvier 2005 Salut Furious Gontran, Je ne vois pas exactement ce que tu cherches à faire, mais il me semble que tu souhaites éliminer les mots non pertinents de ta liste. Je ferais comme ceci: <?php$Mots="la liste des mots a tester";$Nonpert=array("le", "la", "les", "de", "des", "et", "l", "a", "que", "qui");$Mot=explode(" ", $Mots);foreach($Mot as $motsimple) { if (array_search($motsimple,$Nonpert) === false) $resultats[]=$motsimple;}print_r($resultats);?> Ce n'est pas plus simple ? Dan
furious Gontran Posté 4 Janvier 2005 Auteur Posté 4 Janvier 2005 Ben vi, mais tu comment c'est: plus c'est simple...
Dan Posté 4 Janvier 2005 Posté 4 Janvier 2005 Ben vi, mais tu comment c'est: plus c'est simple... Tu aurais la même avec le décodeur ?
Anonymus Posté 4 Janvier 2005 Posté 4 Janvier 2005 J'aurais fais : <?php$Mots="la liste des mots a tester"; $Nonpert=array(" le ", " la ", " les ", " de ", " des ", " et ", " l ", " a ", " que ", " qui "); $replace=""; $resultats = str_replace($Nonpert,$replace,$Mots); print_r($resultats); ?> Ceci dit, attention aux mots vides de sens. "Gare de L'Est" contient 2 mots importants, alors que "Il est beau" n'est contient qu'un...
furious Gontran Posté 4 Janvier 2005 Auteur Posté 4 Janvier 2005 _AT_Dan oublié le verbe... tu sais comme c'est: plus c'est simple, moi ou trouve.... _AT_Anonymus vi mais je ne peux pas non plus retirer toutes les conjugaisons... ca risque d'etre long...
Remi Posté 4 Janvier 2005 Posté 4 Janvier 2005 ${$mot.$1} = "tavaleur"; Je n'avais jamais vu ce genre de syntaxe. Cela fonctionne ? (j'ai essayé mais sans résultat)
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant