Php: Comparer la différence de 2 chaines en %

Pascal_22 Messages postés 534 Date d'inscription   Statut Membre Dernière intervention   -  
Pascal_22 Messages postés 534 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'aimerais, si possible, savoir s'il existe une fonction ou autre qui permetterait de faire la comparaison de 2 chaines (string) en php, comme par exemple : les 2 chaines sont identique à 60% ???

Merci de votre aide!

PAscal_22


A voir également:

5 réponses

Neliel Messages postés 6146 Date d'inscription   Statut Contributeur Dernière intervention   1 693
 
Bonjour,

Je ne crois pas qu'une telle fonction existe... cependant, il est possible de la créer, à priori je ne vois pas de difficulté majeurs.
0
Pascal_22 Messages postés 534 Date d'inscription   Statut Membre Dernière intervention   54
 
Bonjour,

ouf... tu ne vois pas de difficulté majeur !! as-tu un petit trucs a me conseiller par ou commentcer car moi je vois pas du tout??

Merci

Pascal_22
0
Neliel Messages postés 6146 Date d'inscription   Statut Contributeur Dernière intervention   1 693
 
Essaie ça, cependant cette fonction est sensible à la casse, tapes ces lignes en début de ton script:

function pcompare($chaine1, $chaine2)
{
	$tchaine1 = strlen($chaine1);
	$tchaine2 = strlen($chaine2);
	
	if($tchaine1 > $tchaine2)
	{
		$nombre_similitude = 0;
		for($i=0; $i<$tchaine1; $i++)
		{
			if($i>=$tchaine2)
				break;
			if($chaine1[$i] == $chaine2[$i])
				$nombre_similitude++
		}	
		$pourcent = $nombre_similitude * 100 / $tchaine1;
		

	}
	else
	{
		$nombre_similitude = 0;
		for($i=0; $i<$tchaine2; $i++)
		{
			if($i>=$tchaine1)
				break;
			if($chaine1[$i] == $chaine2[$i])
				$nombre_similitude++
		}
		$pourcent = $nombre_similitude * 100 / $tchaine2;	
	}
	
	return $pourcent;
}


J'ai codé ça à la va vite, il se peut qu'elle fonctionne mal, s'il y a une erreur, poste-la, je la corrigerai.

Pour l'utiliser par la suite dans ton programme, tu tapes:

$nom1 = "Maison";
$nom2 = "Maison";

$resultat = pcompare($nom1, $nom2);

echo $resultat;



Si mon programme est correct, il devrait affiché 100.
0
Pascal_22 Messages postés 534 Date d'inscription   Statut Membre Dernière intervention   54
 
Désolé pour le temps!!

WOW merci Neliel,

Je le test2 dès aujourd'hui!!

Merci et je t'en redonne des nouvelles

Pascal_22
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Pascal_22 Messages postés 534 Date d'inscription   Statut Membre Dernière intervention   54
 
Wow Neliel!

Ton programme fonctionne parfaitement, il manquant simplement des ";" quand tu as fait $nombre_similitude++, mais ce n'est qu'un détail!! ;)

Merci énormément Neliel. J'espère pouvoir te rendre l'appareil un jour!

Merci et bonne journée!

Pascal_22
0