重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

PHP怎么统计字符的出现次数

这篇文章主要讲解了“PHP怎么统计字符的出现次数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP怎么统计字符的出现次数”吧!

专注于为中小企业提供网站制作、网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业黄陂免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上1000家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

给出一个字符串“aaabbccqqwweeab”,如何统计出每个字符的出现次数?可以借助循环

';
$strRecord=array();//把出现过的字符记录在此数组中,如果记录有,则不记录,
for($i=0;$i$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 '
';
print_r($strRecord);
?>

分析:

  • 循环一次$str字符串,将出现过的字符记录在$strRecord数组(只记录一次,如果重复了,就忽略)。

  • 遍历$strRecord数组,将字符串中的每个字符($str[$i])和数组的值($strRecord[]['key'])进行比较;如果记录里的某个值和这个字符一样,就记录次数($strRecord[]['count'])+1。

我们来看看输出结果:

PHP怎么统计字符的出现次数

OK,统计出来了!

但有时我们不需要统计全部字符,只需要计算指定的一个字符/子串的出现次数,这样怎么操作?

这也简单,PHP提供了一个内置函数可以解决这个问题。我们来看看下面一个例子:


'; echo "字符串中出现了 ".substr_count($str,'a')." 次 a字符!"; echo "

字符串中出现了 ".substr_count($str,'ab')." 次 ab子串!"; ?>

分析:我们使用“substr_count($str,'a')”和“substr_count($str,'ab')”语句来统计字符串$str中“a”字符和“ab”字符的出现次数。大家觉得这个会输出什么?是不是应该输出“4”和“2”呀。那么对不对?我们来看一下输出结果:

PHP怎么统计字符的出现次数

正确!“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()函数返回的值也不同。


'; echo "字符串中出现了 ".substr_count($str,'a',0,5)." 次 a字符!"; echo "
字符串中出现了 ".substr_count($str,'a',2,5)." 次 a字符!"; echo "

字符串中出现了 ".substr_count($str,'ab',0,10)." 次 ab子串!"; echo "
字符串中出现了 ".substr_count($str,'ab',3)." 次 ab子串!"; ?>

输出结果:

PHP怎么统计字符的出现次数

感谢各位的阅读,以上就是“PHP怎么统计字符的出现次数”的内容了,经过本文的学习后,相信大家对PHP怎么统计字符的出现次数这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


网页名称:PHP怎么统计字符的出现次数
本文路径:http://cqcxhl.com/article/pscepc.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP