加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

如何取得中文字符串中出现次数最多的子串

发布时间:2020-12-13 06:31:51 所属栏目:PHP教程 来源:网络整理
导读:直接上代码,子串的长度可自己设置(比如连续4个字符的或5个字符的)。 代码如下: $str ='我是中国人我是外国人我是韩国人我是美国人我是中国人我是英国人我是中国人我是外国人'; Count_string($str,5); function Count_string($sstr,$length) { $cnt_tmp = 0;

直接上代码,子串的长度可自己设置(比如连续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."
";}
}

echo '出现最多的子串是:
'.$str.'
出现次数:'.$cnt;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读