similar_text
(PHP 4, PHP 5, PHP 7)
similar_text — Вычисляет степень похожести двух строк
Описание
$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() на среднее число длин заданных строк
100
раз.
Возвращаемые значения
Возвращается количество совпадающих символов в двух строках.
Количество совпадающих символов вычисляется путем нахождения самой длинной первой общей подстроки, а затем делает это для префиксов и суффиксов рекурсивно. Добавляются длины всех найденных общих подстрок.
Примеры
Пример #1 Пример использования similar_text() с заменой аргументов
В этом примере показано, что изменение порядка аргументов string1
и
string2
может дать разные результаты.
<?php
$sim = similar_text('bafoobar', 'barfoo', $perc);
echo "сходство: $sim ($perc %)\n";
$sim = similar_text('barfoo', 'bafoobar', $perc);
echo "сходство: $sim ($perc %)\n";
Результатом выполнения данного примера будет что-то подобное:
сходство: 5 (71.428571428571 %) сходство: 3 (42.857142857143 %)
Смотрите также
- levenshtein() - Вычисляет расстояние Левенштейна между двумя строками
- soundex() - Возвращает ключ soundex для строки