2013-12-09 6 views
1

Helllo, интересно, есть ли способ сравнить две строки и получить количество разных букв (или любых других показателей разницы). strcmp() не работает, так как он возвращает некоторые случайные числа, которые я не могу использовать. Моя цель - сравнить две строки и найти, отличаются ли они более чем на 5 символов. Может кто-нибудь подскажет мне. Спасибо за ваше время.Сравнить 2 строки PHP

+1

У Вас есть примеры? – AbraCadaver

ответ

8

Звучит как один из редких случаев, когда levenshtein() может быть использован.

Левенштейна расстояние определяется как минимальное количество символов, которые вы должны заменить, вставить или удалить, чтобы преобразовать str1 в str2.

+0

Это именно то, что я использовал для одной из моих функций поиска, однако я сравнил процентную разницу на основе длины строки, а не всего количества изменений. – Mike

2

Вы можете попробовать использовать PHP's similar_text функцию:

$matching_char_count = similar_text($var_1, $var_2, $percent); 
echo $matching_char_count; 
echo $percent; 
+1

Не работает с «специальными» случаями. 'similar_text (" fffffoo "," foo ")' возвращает 3 так же, как 'similar_text (" foo "," foo ")' – kero

Смежные вопросы