PHP字符串学习之统计字符的出现次数
时间:2021-08-20
来源:互联网
标签:
今天PHP爱好者给大家带来在之前的文章中我们介绍了不区分大小写的将给定子串替换成其他值的方法,感兴趣的可以点击链接查阅→《PHP巧用函数将给定子串换成*号(大小写不敏感)》。这次我们介绍一下使用PHP统计字符串中字符出现次数的方法,有需要的可以参考参考。希望对大家有所帮助。
相信,给出一个字符串“aaabbccqqwweeab”,如何统计出每个字符的出现次数?可以借助循环
<?php
header("Content-Type: text/html;charset=utf-8"); //设置字符编码
//统计字符串中出现的字符,出现次数
$str = 'aaabbccqqwweeab';//字符串示例
echo "字符串为:".$str.'<br/>';
$strRecord=array();//把出现过的字符记录在此数组中,如果记录有,则不记录,
for($i=0;$i<strlen($str);$i++){
$found = 0;//默认设置为没有遇到过
foreach((array)$strRecord as $k=>$v){
if($str[$i] == $v['key']){
$strRecord[$k]['count'] += 1;//已经遇到,count + 1;
$found = 1;//设置已经遇到过的,标记
continue;//如果已经遇到,不用再循环记录数组了,继续下一个字符串比较
}
}
if(!$found){
$strRecord[] = array('key'=>$str[$i],'count'=>1);//记录没有遇到过的字符串
}
}
echo '<pre>';
print_r($strRecord);
?>
分析:
循环一次$str字符串,将出现过的字符记录在$strRecord数组(只记录一次,如果重复了,就忽略)。
遍历$strRecord数组,将字符串中的每个字符(
$str[$i]
)和数组的值($strRecord[]['key']
)进行比较;如果记录里的某个值和这个字符一样,就记录次数($strRecord[]['count']
)+1。
我们来看看输出结果:
OK,统计出来了!
但有时我们不需要统计全部字符,只需要计算指定的一个字符/子串的出现次数,这样怎么操作?
这也简单,PHP提供了一个内置函数可以解决这个问题。我们来看看下面一个例子:
<?php
header("Content-Type: text/html;charset=utf-8"); //设置字符编码
$str = 'aaabbccqqwweeab';
echo "字符串为:".$str.'<br/><br/>';
echo "字符串中出现了 ".substr_count($str,'a')." 次 a字符!";
echo "<br/><br/>字符串中出现了 ".substr_count($str,'ab')." 次 ab子串!";
?>
分析:我们使用“substr_count($str,'a')
”和“substr_count($str,'ab')
”语句来统计字符串$str中“a”字符和“ab”字符的出现次数。大家觉得这个会输出什么?是不是应该输出“4”和“2”呀。那么对不对?我们来看一下输出结果:
正确!“a”字符和“ab”字符的出现次数就是“4”和“2”。
下面我们来了解一下这其中的关键函数substr_count()。
substr_count()函数可以计算子串(由一个或多个字符组成)在字符串中出现的次数(区分大小写)。
substr_count($string,$substring,$start,$length)
函数接受2个必需参数$string和$substring、2个可省略参数$start和$length。
前2个必需参数我们通过上面的代码示例已经对大家有所了解,下面我们来看看2个可省略参数$start和$length。
$start:用于指定在字符串中何处开始搜索子串
$length:用于指定搜索的长度
根据参数$start和$length设置的值不同,substr_count()函数返回的值也不同。
<?php
header("Content-Type: text/html;charset=utf-8"); //设置字符编码
$str = 'aaabbccqqwweeab';
echo "字符串为:".$str.'<br/><br/>';
echo "字符串中出现了 ".substr_count($str,'a',0,5)." 次 a字符!";
echo "<br/>字符串中出现了 ".substr_count($str,'a',2,5)." 次 a字符!";
echo "<br/><br/>字符串中出现了 ".substr_count($str,'ab',0,10)." 次 ab子串!";
echo "<br/>字符串中出现了 ".substr_count($str,'ab',3)." 次 ab子串!";
?>
输出结果:
好了就说到这里了,有其他想知道的,可以点击这个哦。→ →php视频教程
以上就是PHP字符串学习之统计字符的出现次数的详细内容,更多请关注php爱好者其它相关文章!
-
如何注册谷歌账号(谷歌账号注册方法) 怎么跳过手机验证 时间:2025-09-29
-
access数据库8个经典实例 时间:2025-09-29
-
mmc.exe是什么进程 mmc.exe应用程序错误的原因及解决方法 时间:2025-09-29
-
4种基本的编程命名规范介绍(匈牙利命名法、驼峰式命名法、帕斯卡命名法、下划线命名法) 时间:2025-09-29
-
Ghostscript下载、安装教程 Ghostscript命令参数详解 时间:2025-09-29
-
Linux中内存管理NUMA架构详解 时间:2025-09-29
今日更新
-
死亡循环的梗是什么梗?揭秘游戏里无限重生的爆笑真相,看完秒懂!
阅读:18
-
死宅真恶心是什么梗?揭秘二次元圈鄙视链源头,老司机都懂!
阅读:18
-
四霸梗是什么梗?揭秘网络热词四霸的爆火原因和搞笑名场面!
阅读:18
-
四川的梗是什么梗 揭秘川渝爆火方言梗背后的幽默文化
阅读:18
-
四川观察梗是指网友调侃其四处报道全国新闻的幽默现象,被戏称为宇宙级媒体。
阅读:18
-
揭秘网络四大梗:爆笑名场面背后的神转折,一次看懂全网热梗来龙去脉!
阅读:18
-
四大狗贼是什么梗?揭秘网络热词背后的爆笑真相,看完秒懂!
阅读:18
-
四大虐梗是什么梗?揭秘网络最扎心四大名场面,看完泪崩!
阅读:18
-
全境封锁手游需要什么配置-全境封锁手机配置
阅读:18
-
恋与制作人2025中秋节福利情报-登录可获得中秋赠礼
阅读:18