similar_text

(PHP 4, PHP 5, PHP 7, PHP 8)

similar_text — Обчислює ступінь схожості двох рядків

Опис

similar_text(string $string1, string $string2, float &$percent = null): int

Обчислює ступінь схожості двох рядків за алгоритмом, описаним у Programming Classics: Implementing the World's Best Algorithms by Oliver (ISBN 0-131-00413-1). Ця реалізація алгоритму не використовує стека, використаного в оригіналі, натомість застосовуються рекурсивні виклики, що у деяких випадках може прискорити процес. Слід зазначити, що складність алгоритму становить O(N**3), де N - довжина довшою з двох рядків.

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

string1

Перший рядок.

string2

Другий рядок.

Зауваження :

Изменение порядкаstring1иstring2может привести к другому результату; см, Приклад ниже.

percent

При передачі за посиланням третього аргументу, similar_text() привласнює йому ступінь схожості двох рядків у відсотках, ділячи результат similar_text() на середню кількість довжин заданих рядків раз.

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

Повертається кількість символів, що збігаються, у двох рядках.

Кількість символів, що збігаються, обчислюється шляхом знаходження найдовшої першої загальної підрядки, а потім робить це для префіксів і суфіксів рекурсивно. Додаються довжини всіх знайдених загальних підрядок.

Приклади

Приклад #1 Приклад використання similar_text()** із заміною аргументів**

У цьому прикладі показано, що зміна порядку аргументів string1иstring2 може дати різні результати.

Loading...

Висновок наведеного прикладу буде схожим на:

сходство: 5 (71.428571428571 %)
сходство: 3 (42.857142857143 %)

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

  • levenshtein() - обчислює відстань Левенштейна між двома рядками
  • soundex() - Повертає ключ soundex для рядка