PHP实现统计所有字符在字符串中出现次数的方法


Posted in PHP onOctober 17, 2017

本文实例讲述了PHP实现统计所有字符在字符串中出现次数的方法。分享给大家供大家参考,具体如下:

先来看看效果:

PHP实现统计所有字符在字符串中出现次数的方法

算法:

循环一次字符串(本例的$str),把出现过的字符串记录在一个数组(如本例的$strRecord)内,如果已经此记录函数已经有,则不记录;

在每个字符串时,拿来与记录数组的值进行比较(本例的$strRecord[]['key']),如果记录里的某个值和这个字符串一样,就记录次数+1(本例的$strRecord[]['count']);

当然,设置一个变量,默认为false(如本例的$found),记录每次比较完,如果记录数组已经有这个值,就设置为true,通过这个标记,把没有遇到过的数组记录到数组里

实现代码:

<?php
//统计字符串中出现的字符,出现次数
echo '<pre>';
$str = 'aaabbccqqwweedfghhjffffffffggggggggg';//字符串示例
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);//记录没有遇到过的字符串
 }
}
print_r($strRecord);
?>
PHP 相关文章推荐
用PHPdig打造属于你自己的Google[图文教程]
Feb 14 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十四)
Jun 26 PHP
PHP统计目录大小的自定义函数分享
Nov 18 PHP
一个比较不错的PHP日历类分享
Nov 18 PHP
PHP生成不重复随机数的方法汇总
Nov 19 PHP
[原创]php获取数组中键值最大数组项的索引值
Mar 17 PHP
php版微信公众平台接口参数调试实现判断用户行为的方法
Sep 23 PHP
PHP数据库处理封装类实例
Dec 24 PHP
php curl批处理实现可控并发异步操作示例
May 09 PHP
CI框架简单分页类用法示例
Jun 06 PHP
如何在PHP中使用数组
Jun 09 PHP
laravel ajax curd 搜索登录判断功能的实现
Apr 17 PHP
基于PHP-FPM进程池探秘
Oct 17 #PHP
PHP-X系列教程之内置函数的使用示例
Oct 16 #PHP
php封装单文件上传到数据库(路径)
Oct 15 #PHP
PHP多进程编程之僵尸进程问题的理解
Oct 15 #PHP
PHP多进程之pcntl_fork的实例详解
Oct 15 #PHP
详解thinkphp5+swoole实现异步邮件群发(SMTP方式)
Oct 13 #PHP
详解PHP字符串替换str_replace()函数四种用法
Oct 13 #PHP
You might like
在字符串指定位置插入一段字符串的php代码
2010/02/16 PHP
解析Linux下Varnish缓存的配置优化
2013/06/20 PHP
浅析PHP页面局部刷新功能的实现小结
2013/06/21 PHP
php返回json数据函数实例
2014/10/09 PHP
详解PHP 二维数组排序保持键名不变
2019/03/06 PHP
THINKPHP-Apache服务器中使用Alias虚拟目录URL重写 隐藏index.php
2021/03/09 PHP
JavaScript中的集合及效率
2010/01/08 Javascript
JQuery获取各种宽度、高度(format函数)实例
2013/03/04 Javascript
JSON传递bool类型数据的处理方式介绍
2013/09/18 Javascript
js输入框邮箱自动提示功能代码实现
2013/12/10 Javascript
异步动态加载JS并运行(示例代码)
2013/12/13 Javascript
js给selected添加options的方法
2015/05/06 Javascript
在for循环中length值是否需要缓存
2015/07/27 Javascript
深入浅析NodeJs并发异步的回调处理
2015/12/21 NodeJs
jquery实现具有嵌套功能的选项卡
2016/02/12 Javascript
Bootstrap被封装的弹层
2016/07/20 Javascript
js关于getImageData跨域问题的解决方法
2016/10/14 Javascript
js控制文本框禁止输入特殊字符详解
2017/04/07 Javascript
JS实现根据指定值删除数组中的元素操作示例
2018/08/02 Javascript
微信公众号中的JSSDK接入及invalid signature等常见错误问题分析(全面解析)
2020/04/11 Javascript
vue Element左侧无限级菜单实现
2020/06/10 Javascript
Python使用正则表达式实现文本替换的方法
2017/04/18 Python
Python函数式编程
2017/07/20 Python
手把手教你用python抢票回家过年(代码简单)
2018/01/21 Python
3种python调用其他脚本的方法
2020/01/06 Python
详解Django中views数据查询使用locals()函数进行优化
2020/08/24 Python
详解Python中import机制
2020/09/11 Python
使用CSS3来制作消息提醒框
2015/07/12 HTML / CSS
The North Face官方旗舰店:美国著名户外品牌
2020/09/28 全球购物
物理教师自荐信范文
2013/12/28 职场文书
技能竞赛活动方案
2014/02/21 职场文书
英语求职信范文
2014/05/23 职场文书
2014年小学辅导员工作总结
2014/12/23 职场文书
SQL Server中锁的用法
2022/05/20 SQL Server
MySQL数据库表约束讲解
2022/06/21 MySQL
HTML静态页面获取url参数和UserAgent的实现
2022/08/05 HTML / CSS