如何取得中文字符串中出现次数最多的子串
更新时间:2013年08月08日 09:02:43 作者:
以下是对取得中文字符串中出现次数最多的子串的实现代码进行了详细的分析介绍,需要的朋友可以过来参考下
直接上代码,子串的长度可自己设置(比如连续4个字符的或5个字符的)。
复制代码 代码如下:
$str ='我是中国人我是外国人我是韩国人我是美国人我是中国人我是英国人我是中国人我是外国人';
Count_string($str,5);
function Count_string($sstr,$length)
{
$cnt_tmp = 0;
$cnt = 0;
$str = '';
$str_tmp = array();
$str_arr = array();
mb_internal_encoding("gb2312");
$max_length = (mb_strlen($sstr)-$length);
//取得子串集
for($i=0;$i<=$max_length;$i++)
{
$str_tmp[] = mb_substr($sstr, $i, $length);
}
//去除重复子串
$str_tmp = array_unique($str_tmp);
//计算出现次数
foreach($str_tmp as $key=>$value)
{
$cnt_tmp = mb_substr_count($sstr,$value);
if($cnt_tmp>=$cnt)
{
$cnt = $cnt_tmp;
$str_arr[$value] = $cnt;
}
}
//处理出现多重结果
foreach($str_arr as $key=>$value)
{
if($value == $cnt)
{$str .=$key."<br>";}
}
echo '出现最多的子串是:<br>'.$str.'<br>出现次数:'.$cnt;
}
您可能感兴趣的文章:
相关文章
PHP中addslashes()和stripslashes()实现字符串转义和还原用法实例
这篇文章主要介绍了PHP中addslashes()和stripslashes()实现字符串转义和还原用法,结合实例形式较为详细的分析了addslashes()和stripslashes()函数的功能,定义及具体使用技巧,并附带说明了addslashes()与addcslashes()函数的区别,需要的朋友可以参考下2016-01-01浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)
下面小编就为大家带来一篇浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-03-03
最新评论