如何取得中文字符串中出现次数最多的子串_php技巧
程序员文章站
2022-04-09 19:56:04
...
直接上代码,子串的长度可自己设置(比如连续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 {
$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."
";}
}
复制代码 代码如下:
$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 {
$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;
}
上一篇: Typecho标签云问题!
下一篇: 关于时间段 存到数据库的问题
推荐阅读
-
php取中文字符串中出现次数最多的子串的代码
-
如何取得中文字符串中出现次数最多的子串
-
PHP中substr_count()函数获取子字符串出现次数的方法
-
如何取得中文字符串中出现次数最多的子串
-
php面试题:如何知道一个未知长度的字符串哪个字符出现的次数最多?(字符串可由字母,数字及其他字符组成)请写出代码。
-
如何取得中文字符串中出现次数最多的子串_PHP
-
php面试题:如何知道一个未知长度的字符串哪个字符出现的次数最多?(字符串可由字母,数字及其他字符组成)请写出代码。_PHP教程
-
PHP中substr_count()函数获取子字符串出现次数的方法
-
解析使用substr截取UTF-8中文字符串出现乱码的问题_php技巧
-
php面试题:如何知道一个未知长度的字符串哪个字符出现的次数最多?(字符串可由字母,数字及其他字符组成)请写出代码。