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

Fermé
Pascal_22 Messages postés 534 Date d'inscription lundi 20 mars 2006 Statut Membre Dernière intervention 29 août 2014 - 2 août 2010 à 20:00
Pascal_22 Messages postés 534 Date d'inscription lundi 20 mars 2006 Statut Membre Dernière intervention 29 août 2014 - 6 août 2010 à 20:38
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 jeudi 9 juillet 2009 Statut Contributeur Dernière intervention 20 mars 2017 1 688
2 août 2010 à 20:02
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 lundi 20 mars 2006 Statut Membre Dernière intervention 29 août 2014 54
3 août 2010 à 16:45
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 jeudi 9 juillet 2009 Statut Contributeur Dernière intervention 20 mars 2017 1 688
3 août 2010 à 16:59
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 lundi 20 mars 2006 Statut Membre Dernière intervention 29 août 2014 54
5 août 2010 à 17:28
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 lundi 20 mars 2006 Statut Membre Dernière intervention 29 août 2014 54
6 août 2010 à 20:38
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