我正在寻找一个 PHP 库,它允许我比较两个字符串,并确定它们是否相似。例如:
apple apple 100%
apple aple 80%
等等。有任何想法吗?
我正在寻找一个 PHP 库,它允许我比较两个字符串,并确定它们是否相似。例如:
apple apple 100%
apple aple 80%
等等。有任何想法吗?
http://www.php.net/manual/en/function.similar-text.php
similar_text — 计算两个字符串之间的相似度
描述
int similar_text ( string $first , string $second [, float &$percent ] )
这将计算两个字符串之间的相似度,如编程经典:Oliver 的世界最佳算法 (ISBN 0-131-00413-1) 中所述。请注意,此实现不像 Oliver 的伪代码那样使用堆栈,而是使用递归调用,这可能会也可能不会加速整个过程。另请注意,该算法的复杂度为 O(N**3) 其中 N 是最长字符串的长度...
正是这样做的。
您可以考虑使用levenshtein、similar-text、soundex或metaphone函数。
similar_text('apple', 'apple', $percentage);
echo $percentage. // 100
similar_text('apple', 'aple', $percentage);
echo $percentage. // 88.88
此外,如果您将此比较作为从数据库中提取数据的一部分,那么许多数据库引擎都有 SOUNDS LIKE(或 SOUNDEX)实现。在数据库服务器中执行此操作会比在 PHP 中执行此操作更快。