levenshtein

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

levenshtein — Обчислює відстань Левенштейна між двома рядками

Опис

levenshtein(    string $string1,    string $string2,    int $insertion_cost = 1,    int $replacement_cost = 1,    int $deletion_cost = 1): int

Відстань Левенштейна - це мінімальна кількість вставок, замін та видалень символів, необхідна для перетворення string1вstring2. Складність алгоритму дорівнює O(m*n), гдеnиm - Довжини рядків string1иstring2(неплохо по сравнению сsimilar_text(), що має складність O(max(n,m)**3), Але все ж таки досить багато).

Якщо insertion_cost replacement_costи/илиdeletion_cost не рівні алгоритм адаптується для вибору найдешевших перетворень. Наприклад. якщо $insertion_cost + $deletion_cost < $replacement_cost, заміни не будуть виконуватися, натомість будуть виконуватися вставки та видалення.

Список параметрів

string1

Один із рядків, для яких обчислюється відстань Левенштейна.

string2

Один із рядків, для яких обчислюється відстань Левенштейна.

insertion_cost

Визначає вартість вставки.

replacement_cost

Визначає вартість заміни.

deletion_cost

Визначає вартість видалення.

Значення, що повертаються

Ця функція повертає відстань Левенштейна між двома рядками.

список змін

ВерсияОпис
8.0.0До цієї версії levenshtein() треба було викликати із двома чи п'ятьма аргументами.
8.0.0До цієї версії, levenshtein() повертала значення -1якщо один з рядків аргументу більше 255 символів.

Приклади

Приклад #1 Приклад використання levenshtein()****

Loading...

Результат виконання наведеного прикладу:

Вы ввели: carrrot
Вы не имели в виду: carrot?

Дивіться також

  • soundex() - Повертає ключ soundex для рядка
  • similar_text() - обчислює ступінь схожості двох рядків
  • metaphone() - Повертає ключ metaphone для рядка