Comparaison de 2 chaines , et retour du pourcentage de ressemblance

Contenu du snippet

bonjour

cette fonction tres simple sert a comparer 2 chaines de caracteres, et de connaitre leur ressemblance en pourcentage.
il n'y a que 2 paramattres:
1/ la chaine de motes recherchées
2/ la chaine où s'effectue la recherche

Source / Exemple :


<?php

function ressemblance($chaine_recherchee, $chaine_de_contenu) {

//on supprime des caracteres de la chaine recherchée, n'entrant pas en compte dans le calcul de la ressemblance.
//trim() sert a supprimer les espaces potentielles en debut et fin de chaine.
//et strtolower() renvoie la chaîne en minuscules
    $cle_chaine_rech = strtolower(trim(str_replace(array("!", "?", ",", ";", "*" ), "", $chaine_recherchee)));

//on renvoie aussi la chaîne de contenu en minuscules et on explose les chaines, pour obtenir des tableaux
    $explode_contenu = explode(" ", strtolower($chaine_de_contenu));
    $explode_cle = explode(" ", $cle_chaine_rech);

//on compte le contenu des tableau    
    $count_tab_cle = count($explode_cle);
    $count_tab_contenu = count($explode_contenu);
    
//on compare les tableaux 	
	for($i = 0; $i != $count_tab_contenu; $i++) $pointage[$i] = (in_array($explode_contenu[$i], $explode_cle))?1:0; 

// on calcule la somme des valeurs du tableau, et on la retourne sous forme de pourcentage
 return round(((array_sum($pointage)/$count_tab_contenu)*100), 2) . "%";
}

// les 2 paramettres representent respectivement la chaine de mots recherchées, et la chaine où l'on effectue la recherche

$chaine1 = 'test de recherche dans une chaîne';
$chaine2 = 'chaîne de contenu dans laquelle nous effectuons la recherche des mots de la chaîne 1';
echo "Chaine 1 = ".$chaine1."<br/>Chaine 2 = ".$chaine2."<br/>";
echo "Calcul du pourcentage de ressemblance: ".ressemblance($chaine1, $chaine2)."<br/>";

?>

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.