(PHP 4, PHP 5, PHP 7)
similar_text — Вычисляет степень похожести двух строк
$first
, string $second
[, float &$percent
] ) : intВычисляет степень похожести двух строк по алгоритму, описанному в Programming Classics: Implementing the World's Best Algorithms by Oliver (ISBN 0-131-00413-1). Эта реализация алгоритма не использует стека, использованного в оригинале, вместо этого применяются рекурсивные вызовы, что в некоторых случаях может ускорить процесс. Следует отметить, что сложность алгоритма составляет O(N**3), где N - длина более длинной из двух строк.
first
Первая строка.
second
Вторая строка.
Замечание:
Изменение порядка
first
иsecond
может привести к другому результату; см, пример ниже.
percent
При передаче по ссылке третьего аргумента, similar_text() присваивает ему степень похожести двух строк в процентах, деля результат similar_text() на среднее число длин заданных строк 100 раз.
Возвращается количество совпадающих символов в двух строках.
Количество совпадающих символов вычисляется путем нахождения самой длинной первой общей подстроки, а затем делает это для префиксов и суффиксов рекурсивно. Добавляются длины всех найденных общих подстрок.
Пример #1 Пример использования similar_text() с заменой аргументов
В этом примере показано, что изменение порядка аргументов first
и
second
может дать разные результаты.
<?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 %)