Funkcja levenshtein() w PHP
Przykład
Oblicz dystans Levenshteina między dwoma ciągami znaków:
<?php echo levenshtein("Hello World","ello World"); echo "<br>"; echo levenshtein("Hello World","ello World",10,20,30); ?>
Definicja i zastosowanie
Funkcja levenshtein() zwraca dystans Levenshtein między dwoma ciągami znaków.
Dystans Levenshtein, znany również jako odległość edycyjna, to liczba minimalnych operacji edycyjnych wymaganych do przekształcenia jednego ciągu znaków w inny. Dopuszczalne operacje edycyjne obejmują zastąpienie jednego znaku innym, wstawienie znaku, usunięcie znaku.
Domyślnie PHP przypisuje każdej operacji (zastąpienie, wstawienie i usunięcie) ten sam ciężar. Jednak możesz zdefiniować koszt każdej operacji, ustawiając opcjonalne parametry insert, replace, delete.
Komentarz:Funkcja levenshtein() nie rozróżnia wielkości liter.
Komentarz:Funkcja levenshtein() jest szybsza niż similar_text() Funkcja szybsza. Jednak funkcja similar_text() może dostarczyć bardziej dokładnych wyników poprzez mniejszą liczbę wymaganych modyfikacji.
Gramatyka
levenshtein(string1,string2,insert,replace,delete)
Parametry | Opis |
---|---|
string1 | Wymagane. Pierwszy ciąg znaków do porównania. |
string2 | Wymagane. Drugi ciąg znaków do porównania. |
insert | Opcjonalnie. Koszt wstawienia jednego znaku. Domyślnie wynosi 1. |
replace | Opcjonalnie. Koszt zastąpienia jednego znaku. Domyślnie wynosi 1. |
delete | Opcjonalnie. Koszt usunięcia jednego znaku. Domyślnie wynosi 1. |
Szczegóły techniczne
Zwracana wartość: | Zwraca dystans Levenshtein między dwoma ciągami znaków. Jeśli jeden z ciągów znaków przekracza 255 znaków, zwraca -1. |
Wersja PHP: | 4.0.1+ |