furious Gontran Posté 30 Décembre 2004 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Jok Posté 30 Décembre 2004 Partager 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fuleran Posté 30 Décembre 2004 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
petit-ourson Posté 30 Décembre 2004 Partager 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
furious Gontran Posté 4 Janvier 2005 Auteur Partager 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 4 Janvier 2005 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
furious Gontran Posté 4 Janvier 2005 Auteur Partager Posté 4 Janvier 2005 Ben vi, mais tu comment c'est: plus c'est simple... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 4 Janvier 2005 Partager Posté 4 Janvier 2005 Ben vi, mais tu comment c'est: plus c'est simple... Tu aurais la même avec le décodeur ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 4 Janvier 2005 Partager 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... Lien vers le commentaire Partager sur d’autres sites More sharing options...
furious Gontran Posté 4 Janvier 2005 Auteur Partager 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... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Remi Posté 4 Janvier 2005 Partager 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) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Jok Posté 14 Janvier 2005 Partager Posté 14 Janvier 2005 Oui oui .... c'est comme si tu faisais un eval. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant