PHP,检查字符串是否与另一个字符串相似

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP,检查字符串是否与另一个字符串相似相关的知识,希望对你有一定的参考价值。

有没有办法检查php中两个字符串是否相似?

说我有“租车”的文字,我希望“租车”被视为类似于“租车”。

或者另一个例子,“DS Nintendo”应该类似于“blabla Nintendo DS 4051”。

similar_text不适用于上面的示例。为了接受它类似,%的条形必须设置得非常低。 “DS任天堂”和“任天堂DS”很容易比较,但现在以此为例。 “DS Nintendo”,“blabla 352532 1qwd0gs Nintendo 03532 DS”。这个百分比将非常低。

答案

您可以查看array_intersect我猜:

$master=explode(" ", "DS Nintendo");
$test=explode(" ", "blabla Nintendo DS 4051");

$result = array_intersect($master, $test);

if(count($master)===count($result))
{
    echo 'yay!';
}
另一答案

我建议你使用来自php的本地函数similar_text。

int similar_text ( string $first , string $second [, float &$percent ] )

例:

$sim = similar_text('bafoobar', 'barfoo', $perc);
echo "similarity: $sim ($perc %)\n";
$sim = similar_text('barfoo', 'bafoobar', $perc);
echo "similarity: $sim ($perc %)\n";
另一答案

您可以使用函数similar_text:

http://php.net/manual/en/function.similar-text.php

或者levenshtein函数:

http://php.net/manual/en/function.levenshtein.php

对于类似(声音)的单词,存在metaphone功能:

http://php.net/manual/en/function.metaphone.php

也许您可以结合使用这些功能来获得更准确的结果。

以上是关于PHP,检查字符串是否与另一个字符串相似的主要内容,如果未能解决你的问题,请参考以下文章

与另一个片段通信的片段接口

将一个字符串与另一个字符串的多个子字符串进行比较

PHP 代码片段

片段与另一个片段重叠

在 MySQL / PHP 中匹配相似的字符串

如何检查一个php字符串是不是只包含英文字母和数字?