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,检查字符串是否与另一个字符串相似的主要内容,如果未能解决你的问题,请参考以下文章