用PHP怎样实现计算每个字符出现次数
Admin 2022-08-26 群英技术资讯 999 次浏览
本篇内容介绍了“用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子串!";
?>输出结果:

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了PHP封装请求类,结合实例形式分析了基于Yii框架的curl封装请求处理的相关实现技巧,需要的朋友可以参考下
本篇文章给大家分享一个phpstrom注解插件--PHP Annotations。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。
php mysql删除语句是Delete,DELETE语句用于从数据库表中删除行,其语法是“DELETE FROM table_name WHERE some_column = some_value”。
laravel设置字符集的方法:1、打开相应的代码文件;2、利用Schema来修改字符集,代码如“Schema::create('codes', function (Blueprint $table) {{...}}”。
这篇文章主要介绍了Yii框架学习笔记之应用组件操作,结合实例形式分析了Yii框架自定义组件的创建与使用相关操作技巧,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008