similar_text

(PHP 4, PHP 5, PHP 7)

similar_textCalcule la similarité de deux chaînes

Description

similar_text ( string $first , string $second [, float &$percent ] ) : int

Calcule la similarité entre les deux chaînes first et second, selon la méthode décrite dans Programming Classics: Implementing the World's Best Algorithms by Oliver (ISBN 0-131-00413-1). Notez que cette implémentation n'utilise pas la méthode de pile comme dans le pseudo code d'Oliver, mais des appels récursifs, ce qui accélère ou pas le processus. Notez que la complexité de l'algorithme est en O(N**3) où N est la taille de la plus grande chaîne.

Liste de paramètres

first

La première chaîne.

second

La seconde chaîne.

Note:

Inverser first et second peut produire des résultats différents ; voir l'exemple ci-dessous.

percent

En passant une référence en tant que troisième argument, similar_text() va calculer la similarité en pourcentage, en divisant le résultat de similar_text() par la moyenne de la longeur des chaîne de caractères fournies fois 100.

Valeurs de retour

Retourne le nombre de caractères correspondant dans les deux chaîne de caractères.

Le nombre de charactères correspondant est calculés en trouvant la première plus longue sous-chaîne commune, et puis faire ceci pour les préfixes et les sufixes, de façon récursive. La longeur de toutes les sous-chaînes communes sont ajoutées.

Exemples

Exemple #1 Exemple de similar_text() en inversant les arguments

Cet exemple montre qu'inverser les arguments first et second peut produire des résultats différents.

<?php
$sim 
similar_text('bafoobar''barfoo'$perc);
echo 
"similarity: $sim ($perc %)\n";
$sim similar_text('barfoo''bafoobar'$perc);
echo 
"similarity: $sim ($perc %)\n";

L'exemple ci-dessus va afficher quelque chose de similaire à :

similarity: 5 (71.428571428571 %)
similarity: 3 (42.857142857143 %)

Voir aussi