(PHP 4 >= 4.0.1, PHP 5, PHP 7)
levenshtein — ���������ַ���֮��ı༭����
$str1
, string $str2
) : int$str1
, string $str2
, int $cost_ins
, int $cost_rep
, int $cost_del
) : int
�༭���룬��ָ�����ִ�֮�䣬ͨ���滻�����롢ɾ���Ȳ������ַ���str1
ת����str2
����Ҫ�����������ַ�������
���㷨�ĸ��Ӷ��� O(m*n)������ n �� m �ֱ���str1
��str2
�ij��� �������㷨���Ӷ�ΪO(max(n,m)**3)��similar_text()���ʱ���˺��������൱����ģ�������Ȼ�ܺ�ʱ������
�������ʽ�У��ú���ֻ�������ַ�����Ϊ������������ͨ�����롢�滻��ɾ���Ȳ�����str1
ת����str2
����Ҫ�IJ���������
�ڶ��ֱ��彫������������IJ�����������롢�滻��ɾ�������Ĵ������˱���ȵ�һ�ָ���ͨ�ú���Ӧ����Ч�ʲ��ߡ�
str1
��༭�����е�����һ���ַ���
str2
��༭�����е���һ���ַ���
cost_ins
����������
cost_rep
�����滻����
cost_del
����ɾ������
�˺������������ַ�������֮��ı༭���룬�������һ���ַ����������ȴ������Ƶ�255���ַ�ʱ������-1��
Example #1 levenshtein() ���ӣ�
<?php
// ����ƴд����ĵ���
$input = 'carrrot';
// Ҫ���ĵ�������
$words = array('apple','pineapple','banana','orange',
'radish','carrot','pea','bean','potato');
// Ŀǰû���ҵ���̾���
$shortest = -1;
// �����������ҵ���ӽ���
foreach ($words as $word) {
// �������뵥���뵱ǰ���ʵľ���
$lev = levenshtein($input, $word);
// �����ȫ��ƥ��
if ($lev == 0) {
// ��ӽ��ĵ������������ȫƥ�䣩
$closest = $word;
$shortest = 0;
// �˳�ѭ���������Ѿ��ҵ�һ����ȫ��ƥ��
break;
}
// ����˴ξ�����ϴ��ҵ���Ҫ��
// ����û�ҵ��ӽ��ĵ���
if ($lev <= $shortest || $shortest < 0) {
// ������ӽ���ƥ���Լ�������̾���
$closest = $word;
$shortest = $lev;
}
}
echo "Input word: $input\n";
if ($shortest == 0) {
echo "Exact match found: $closest\n";
} else {
echo "Did you mean: $closest?\n";
}
?>
�������̻������
Input word: carrrot Did you mean: carrot?