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 相关文章推荐
jq的get传参数在utf-8中乱码问题的解决php版
Jul 23 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
Jul 03 PHP
PHP使用数组实现队列
Feb 05 PHP
部署PHP项目应该注意的几点事项分享
Dec 20 PHP
PHP中如何实现常用邮箱的基本判断
Jan 07 PHP
smarty中js的调用方法示例
Oct 27 PHP
thinkphp中html:list标签传递多个参数实例
Oct 30 PHP
php文件上传简单实现方法
Jan 24 PHP
PHP错误Warning:mysql_query()解决方法
Oct 24 PHP
php使用pdo连接sqlite3的配置示例
May 27 PHP
PHP开发制作一个简单的活动日程表Calendar
Jun 20 PHP
PHP常用header头定义代码示例汇总
Aug 29 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与ASP
2006/10/09 PHP
模仿OSO的论坛(一)
2006/10/09 PHP
php 论坛采集程序 模拟登陆,抓取页面 实现代码
2009/07/09 PHP
PHP调用MsSQL Server 2012存储过程获取多结果集(包含output参数)的详解
2013/07/03 PHP
2个比较经典的PHP加密解密函数分享
2014/07/01 PHP
php页面函数设置超时限制的方法
2014/12/01 PHP
PHP ElasticSearch做搜索实例讲解
2020/02/05 PHP
基于JQuery的动态删除Table表格的行和列的代码
2011/05/12 Javascript
Extjs EditorGridPanel中ComboBox列的显示问题
2011/07/04 Javascript
easyui Draggable组件实现拖动效果
2015/08/19 Javascript
javascript手风琴下拉菜单实现代码
2015/11/12 Javascript
javascript实现的猜数小游戏完整实例代码
2016/05/10 Javascript
Node.js中文件操作模块File System的详细介绍
2017/01/05 Javascript
快速理解 JavaScript 中的 LHS 和 RHS 查询的用法
2017/08/24 Javascript
使用Vue 实现滑动验证码功能
2019/06/27 Javascript
Python运行的17个时新手常见错误小结
2012/08/07 Python
Python使用asyncio包处理并发详解
2017/09/09 Python
利用selenium 3.7和python3添加cookie模拟登陆的实现
2017/11/20 Python
利用Python暴力破解zip文件口令的方法详解
2017/12/21 Python
python os用法总结
2018/06/08 Python
解决python "No module named pip" 的问题
2018/10/13 Python
Python2.7实现多进程下开发多线程示例
2019/05/31 Python
使用pyhon绘图比较两个手机屏幕大小(实例代码)
2020/01/03 Python
python如何求100以内的素数
2020/05/27 Python
Python 如何反方向迭代一个序列
2020/07/28 Python
PyQT5速成教程之Qt Designer介绍与入门
2020/11/02 Python
HTML5拖拉上传文件的简单实例
2017/01/11 HTML / CSS
应届生护士求职信
2013/11/01 职场文书
啤酒节策划方案
2014/05/28 职场文书
领导班子四风对照检查材料范文
2014/09/27 职场文书
小学五一劳动节活动总结
2015/02/09 职场文书
呼啸山庄读书笔记
2015/06/29 职场文书
党组织结对共建协议书
2016/03/23 职场文书
商业计划书之服装
2019/09/09 职场文书
解析在浏览器地址栏输入一个URL后发生了什么
2021/06/21 Servers
SQLServer之常用函数总结详解
2021/08/30 SQL Server