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);
?>

Przykład uruchomienia

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+