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


Posted in PHP onAugust 08, 2013

直接上代码,子串的长度可自己设置(比如连续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 相关文章推荐
一些PHP写的小东西
Dec 06 PHP
VIM中设置php自动缩进为4个空格的方法详解
Jun 14 PHP
php树型类实例
Dec 05 PHP
php上传中文文件名乱码问题处理方案
Feb 03 PHP
PHP使用递归生成文章树
Apr 21 PHP
php计算title标题相似比的方法
Jul 29 PHP
DWZ+ThinkPHP开发时遇到的问题分析
Dec 12 PHP
php常用字符函数实例小结
Dec 29 PHP
深入讲解PHP的对象注入(Object Injection)
Mar 01 PHP
解决laravel(5.5)访问public报错的问题
Oct 12 PHP
浅析PHP中的 inet_pton 网络函数
Dec 16 PHP
PHP实现递归的三种方法
Jul 04 PHP
php读取图片内容并输出到浏览器的实现代码
Aug 08 #PHP
php调用Google translate_tts api实现代码
Aug 07 #PHP
利用php+mcDropdown实现文件路径可在下拉框选择
Aug 07 #PHP
PHP生成验证码时“图像因其本身有错无法显示”的解决方法
Aug 07 #PHP
对于PHP 5.4 你必须要知道的
Aug 07 #PHP
php缓存技术详细总结
Aug 07 #PHP
IIS6.0中配置php服务全过程解析
Aug 07 #PHP
You might like
浅析php变量作用域的一些问题
2013/08/08 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
2017/08/28 PHP
极酷的javascirpt,让你随意编辑任何网页
2007/02/25 Javascript
JavaScript OOP面向对象介绍
2010/12/02 Javascript
jquery mobile实现拨打电话功能的几种方法
2013/08/05 Javascript
js如何调用qq互联api实现第三方登录
2014/03/28 Javascript
js+html5实现可在手机上玩的拼图游戏
2015/07/17 Javascript
js 判断附件后缀的简单实现方法
2016/10/11 Javascript
javascript ES6 新增了let命令使用介绍
2017/07/07 Javascript
图片加载完成再执行事件的实例
2017/11/16 Javascript
JS实现简易换图时钟功能分析
2018/01/04 Javascript
jQuery模拟html下拉多选框的原生实现方法示例
2019/05/30 jQuery
ant-design表单处理和常用方法及自定义验证操作
2020/10/27 Javascript
[02:57]DOTA2亚洲邀请赛 SECRET战队出场宣传片
2015/02/07 DOTA
numpy.delete删除一列或多列的方法
2018/04/03 Python
将TensorFlow的模型网络导出为单个文件的方法
2018/04/23 Python
Python3中的json模块使用详解
2018/05/05 Python
根据DataFrame某一列的值来选择具体的某一行方法
2018/07/03 Python
解决pandas中读取中文名称的csv文件报错的问题
2018/07/04 Python
python paramiko利用sftp上传目录到远程的实例
2019/01/03 Python
Python2与Python3的区别实例分析
2019/04/11 Python
使用python爬取抖音视频列表信息
2019/07/15 Python
Python 如何提高元组的可读性
2019/08/26 Python
基于python图像处理API的使用示例
2020/04/03 Python
python plt可视化——打印特殊符号和制作图例代码
2020/04/17 Python
python和js交互调用的方法
2020/06/23 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
2020/11/20 Python
购买大码女装:Lane Bryant
2016/09/07 全球购物
不拖欠农民工工资承诺书
2014/03/31 职场文书
学校评语大全
2014/05/06 职场文书
2014年办公室工作总结范文
2014/11/12 职场文书
班主任寄语2015
2015/02/26 职场文书
毕业生登记表班级意见
2015/06/05 职场文书
升学宴家长致辞
2015/07/27 职场文书
SpringCloud之@FeignClient()注解的使用方式
2021/09/25 Java/Android
在ubuntu下安装go开发环境的全过程
2022/08/05 Golang