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


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类
Apr 09 PHP
PHP 字符串分割和比较
Oct 06 PHP
浅析PHP中的UNICODE 编码与解码
Jun 29 PHP
跟我学Laravel之路由
Oct 15 PHP
php+ajax制作无刷新留言板
Oct 27 PHP
如何解决PHP使用mysql_query查询超大结果集超内存问题
Mar 14 PHP
Symfony模板的快捷变量用法实例
Mar 17 PHP
php 读取输出其他文件的实现方法
Jul 26 PHP
PHP执行shell脚本运行程序不产生core文件的方法
Dec 28 PHP
php lcg_value与mt_rand生成0~1随机小数的效果对比分析
Apr 05 PHP
php 中的closure用法详解
Jun 12 PHP
基于PHP实现邮箱验证激活过程详解
Oct 28 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错误Cannot use object of type stdClass as array in错误的解决办法
2014/06/12 PHP
php实现的任意进制互转类分享
2015/07/07 PHP
一直复略了的一个问题,关于表单重复提交
2007/02/15 Javascript
jQuery对象和DOM对象相互转化
2009/04/24 Javascript
Jquery 常用方法经典总结
2010/01/28 Javascript
javascript showModalDialog 内跳转页面的问题
2010/11/25 Javascript
js解决movebox移动问题
2016/03/29 Javascript
Vue 2.0学习笔记之使用$refs访问Vue中的DOM
2017/12/19 Javascript
Vue中使用Sortable的示例代码
2018/04/07 Javascript
vue实现底部菜单功能
2018/07/24 Javascript
vue实现微信分享功能
2018/11/28 Javascript
微信小程序五子棋游戏的棋盘,重置,对弈实现方法【附demo源码下载】
2019/02/20 Javascript
vue draggable resizable gorkys与v-chart使用与总结
2019/09/05 Javascript
javascript二维数组和对象的深拷贝与浅拷贝实例分析
2019/10/26 Javascript
vue穿梭框实现上下移动
2021/01/29 Vue.js
[36:33]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第二场 11.29
2020/12/02 DOTA
python将多个文本文件合并为一个文本的代码(便于搜索)
2011/03/13 Python
python定时采集摄像头图像上传ftp服务器功能实现
2013/12/23 Python
Python实现豆瓣图片下载的方法
2015/05/25 Python
如何准确判断请求是搜索引擎爬虫(蜘蛛)发出的请求
2015/10/13 Python
python爬取51job中hr的邮箱
2016/05/14 Python
Python 3.x 连接数据库示例(pymysql 方式)
2017/01/19 Python
Python2与python3中 for 循环语句基础与实例分析
2017/11/20 Python
python 利用文件锁单例执行脚本的方法
2019/02/19 Python
Python如何实现后端自定义认证并实现多条件登陆
2020/06/22 Python
Python 如何调试程序崩溃错误
2020/08/03 Python
Python代码注释规范代码实例解析
2020/08/14 Python
python利用pytesseract 实现本地识别图片文字
2020/12/14 Python
Hush Puppies澳大利亚官网:舒适的男女休闲和正装鞋
2019/08/24 全球购物
包装类的功能、种类、常用方法
2012/01/27 面试题
实习自我鉴定
2013/12/15 职场文书
求职面试个人自我评价
2014/02/28 职场文书
大学国际贸易专业自荐信
2014/06/05 职场文书
惹女朋友生气检讨书
2015/05/06 职场文书
矛盾论读书笔记
2015/06/29 职场文书
机关单位2016年法制宣传日活动总结
2016/04/01 职场文书