Aller au contenu
Zebulon
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Comparaison mot en PHP


pitcat

Messages recommandés

Salut tous,

 

je cherche une solution pour comparer 2 textes, un texte sources avec quelques mots une dizaine et un autre texte plus long.

 

Le but étant d'afficher les mots présent dans le sources s'il sont présent dans l'autre texte aussi.

 

exemple sources :

 

bleu blanc rouge vert noir gris jaune

 

exemple texte :

 

j'aime bien le bleu blanc noir gris et moins les autres 

 

le résultant attendue serait :

 

bleu blanc noir gris

 

une idée ?

 

 

merci d'avance

 

 

Lien vers le commentaire
Partager sur d’autres sites

combine strtok() pour découper ta string en n mots et compare chaque token à ton tableau source avec la fonction in_array()

 

$string = "j'aime bien le bleu blanc noir gris et moins les autres";
$tab = array("bleu","blanc","rouge","vert","noir","gris","jaune");

$token= strtok(addslashes($string)," ");
while ($token !== FALSE) {

  if(in_array($token,$tab)) { echo $token."\n";}
  $token = strtok(" ");
}

Modifié par Greywolf
correction du code ligne4, rajout retour chariot ligne7
Lien vers le commentaire
Partager sur d’autres sites

modifie alors ton tableau source afin que les mots cherchés soient les clés et associées à une valeur compteur

 

$tab = array("bleu" => 0,"blanc" => 0,"rouge" => 0,"vert" => 0,"noir" => 0,"gris" => 0,"jaune" => 0);

 

ensuite tu remplaces in_array() par la fonction array_key_exists()

si la clé existe, tu incrémentes le compteur et tu affiches le mot que si le compteur est égal à 1

if(array_key_exists($token,$tab)) {
   $tab[$token]++;
   if ($tab[$token]== 1) { echo $token."\n"; }
}

 

les autres mots sont automatiquement filtrés s'ils ne sont pas présents dans ton tableau source.

 

En fonction du besoin final, le tableau n'est peut-être pas forcément adapté, une structure objet ou un arbre le serait peut-être plus.

http://kevin.vanzonneveld.net/techblog/article/convert_anything_to_tree_structures_in_php/

Lien vers le commentaire
Partager sur d’autres sites

où est le problème?

 

au pire, tu utilises explode() pour convertir ta chaine de caractères récupérée depuis ton SGBD pour faire un array

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...