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 相关文章推荐
图象函数中的中文显示
Oct 09 PHP
php miniBB中文乱码问题解决方法
Nov 25 PHP
php实现快速排序法函数代码
Aug 27 PHP
php获取从百度搜索进入网站的关键词的详细代码
Jan 08 PHP
PHP编写RESTful接口
Feb 23 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
Jul 02 PHP
thinkphp跨库操作的简单代码实例
Sep 22 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
Feb 08 PHP
PHP实现的无限分类类库定义与用法示例【基于thinkPHP】
Aug 06 PHP
Mac下快速搭建PHP开发环境步骤详解
May 05 PHP
Thinkphp5 如何隐藏入口文件index.php(URL重写)
Oct 16 PHP
PHP中的输出echo、print、printf、sprintf、print_r和var_dump的示例代码
Dec 01 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
高分R级DC动画剧《哈莉·奎茵》第二季正式预告首发
2020/04/09 欧美动漫
打造计数器DIY三步曲(下)
2006/10/09 PHP
php判断输入不超过mysql的varchar字段的长度范围
2011/06/24 PHP
php数组函数序列之array_unique() - 去除数组中重复的元素值
2011/10/29 PHP
第四章 php数学运算
2011/12/30 PHP
PHP实现取得HTTP请求的原文
2014/08/18 PHP
php简单获取文件扩展名的方法
2015/03/24 PHP
javascript 动态添加表格行
2006/06/22 Javascript
添加到收藏夹代码(兼容几乎所有的浏览器)
2007/01/09 Javascript
学习ExtJS(一) 之基础前提
2009/10/07 Javascript
js创建数据共享接口——简化框架之间相互传值
2011/10/23 Javascript
JS前端框架关于重构的失败经验分享
2013/03/17 Javascript
JS实现网页每隔3秒弹出一次对话框的方法
2015/11/09 Javascript
一起学写js Calender日历控件
2016/04/14 Javascript
浅析Node.js实现HTTP文件下载
2016/08/05 Javascript
关于JS中二维数组的声明方法
2016/09/24 Javascript
完美解决spring websocket自动断开连接再创建引发的问题
2017/03/02 Javascript
element ui里dialog关闭后清除验证条件方法
2018/02/26 Javascript
深入解析ES6中的promise
2018/11/08 Javascript
详解elementui之el-image-viewer(图片查看器)
2019/08/30 Javascript
深入解读VUE中的异步渲染的实现
2020/06/19 Javascript
Python读取本地文件并解析网页元素的方法
2018/05/21 Python
python3.x中安装web.py步骤方法
2020/06/23 Python
Python pip 常用命令汇总
2020/10/19 Python
HTML5 transform三维立方体实现360无死角三维旋转效果
2014/08/22 HTML / CSS
阿根廷网上配眼镜:SmartBuyGlasses阿根廷
2016/08/19 全球购物
Sperry官网:帆船鞋创始品牌
2016/09/07 全球购物
英国网上超市:Ocado
2020/03/05 全球购物
日期和时间问题
2015/01/04 面试题
求职简历自荐信范文
2013/10/21 职场文书
党性锻炼的心得体会
2014/09/03 职场文书
教师党的群众路线对照检查材料
2014/09/24 职场文书
2014年宣传部个人工作总结
2014/12/06 职场文书
家装电话营销开场白
2015/05/29 职场文书
《雪域豹影》读后感:父爱的伟大
2019/12/23 职场文书
CSS 还能这样玩?奇思妙想渐变的艺术
2021/04/27 HTML / CSS