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

Pascal_22 Messages postés 559 Statut Membre -  
Pascal_22 Messages postés 559 Statut Membre -
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. Neliel Messages postés 7012 Statut Contributeur 1 702
     
    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
  2. Pascal_22 Messages postés 559 Statut Membre 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
  3. Neliel Messages postés 7012 Statut Contributeur 1 702
     
    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
  4. Pascal_22 Messages postés 559 Statut Membre 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Pascal_22 Messages postés 559 Statut Membre 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