English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
PHP String Zeichenkettenfunktionen Handbuch
Die levenshtein() -Funktion berechnet die Distanz zwischen zwei Zeichenketten.
int levenshtein ( string $str1 , string $str2 )
zur Berechnung der Distanz zwischen zwei Zeichenketten verwendet wird.
Editierabstand, der die Distanz zwischen zwei Zeichenketten ist, durch Ersetzen, Einfügen und Löschen usw. zu erreichen1In das str2benötigte Anzahl der Operationen sind. Die Komplexität dieses Algorithmus ist O(m*n),wobei n und m die Länge von str1 und str2Länge (wenn und die Algorithmuskomplexität ist O(max(n,m)**3) mit similar_text() verglichen, ist diese Funktion immer noch ziemlich gut, obwohl sie immer noch zeitaufwendig ist.)。
In der einfachsten Form nimmt die Funktion nur zwei Zeichenketten als Parameter und berechnet die Anzahl der durch Einfügen, Ersetzen und Löschen erforderlichen Operationen, um str1In das str2Benötigte Anzahl der Operationen.
Eine zweite Variante nimmt drei zusätzliche Parameter zur Definition der Anzahl der Einfügungen, Ersetzungen und Löschungen hinzu. Diese Variante ist universeller und anpassungsfähiger als die erste, aber weniger effizient.
Es gibt die Levenshtein-Distanz zwischen den beiden Parameterzeichenketten zurück, andernfalls gibt es zurück-1
Nummer | Parameter und Beschreibung |
---|---|
1 | str1 Berechnen Sie eine der beiden Zeichenketten im Editierabstand |
2 | str2 Berechnen Sie die andere Zeichenkette im Editierabstand |
3 | cost_ins Definieren Sie die Anzahl der Einfügungen |
4 | cost_del Definieren Sie die Anzahl der Ersetzungen |
Probieren Sie die folgenden Beispiele aus, um die Levenshtein-Distanz zwischen zwei Zeichenketten zu berechnen:
<?php //Berechnung der Distanz zwischen zwei Zeichenketten echo 'der Abstand zwischen zwei Zeichenketten ist '; echo levenshtein("Hallo Welt","ello Welt"); ?>Testen Sie heraus‹/›
Ausgabeergebnis-
der Abstand zwischen zwei Zeichenketten ist 1