在之前的文章《PHP字符串学习之比较两个字符串》中,我们介绍了3种比较两个字符串的方法,感兴趣的可以看看。下面这篇文章我们来聊聊在PHP中计算两个字符串匹配度(相似度)的方
计算两个字符串匹配度(相似度),也就是计算两个字符串的匹配字符的数目;PHP中内置了一个函数可以实现各个功能,那就是similar_text()函数,下面我们来介绍一下这个函数。
首先我们来看一个小例子。
<?php header("Content-type:text/html;charset=utf-8"); $str1="Hello php!"; $str2="Hello java!"; echo "字符串 “'$str1'” 和字符串 “'$str2'” 的相似度为: ".similar_text($str1,$str2); ?>
看这个代码,你们觉得这个结果会是什么?我们来分析一下:在两个字符串中有7个相同的字符:“Hello”、空格、“!”。
那么两个字符串的相似度应该为“7”,对不对?我们来看一下答案。
是的,没错。similar_text()函数统计了字符串$str1
和$str2
中匹配字符的数目,并返回匹配字符数目。
那我们具体看看这个函数吧。
similar_text() 函数计算两个字符串的相似度,返回匹配字符数目(数字形式);也能以百分比的形式返回两个字符串的相似度。
看看它的语法格式:
similar_text($string1,$string2,[$percent])
可以看出,similar_text() 函数接受3个参数:2个必需参数$string1
和$string2
,1个可省略的参数$percent
。通过上面的例子,2个必需参数我们知道它们的意思,下面来聊聊可省略的参数$percent
。
参数$percent
是用于指定供存储百分比相似度的变量名。similar_text() 函数设置了该参数,就可以能以百分比的形式返回两个字符串的相似度。
下面通过代码示例来看看参数$percent
的用法。
<?php header("Content-type:text/html;charset=utf-8"); $str1="Hello php!"; $str2="Hello java!"; similar_text($str1,$str2,$percent); echo "字符串 “'$str1'” 和字符串 “'$str2'” 的相似度为: ".$percent; ?>
输出结果:
利用similar_text()函数,可以用来做模糊搜索的功能,或者其他需要模糊匹配的功能。但因为对汉字的处理规则不同,similar_text() 函数对中文计算不是很不准确。
好了就说到这里了,有其他想知道的,可以点击这个哦。→ →php视频教程
最后给大家