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

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

5 réponses

  1. Contributeur
    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.
    1. 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
      1. Contributeur
        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.
        1. 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
          1. 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