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 相关文章推荐
一个SQL管理员的web接口
Oct 09 PHP
php面向对象全攻略 (十七) 自动加载类
Sep 30 PHP
PHP 文件缓存的性能测试
Apr 25 PHP
php简单开启gzip压缩方法(zlib.output_compression)
Apr 13 PHP
phpcms模块开发之swfupload的使用介绍
Apr 28 PHP
浅析PHP程序设计中的MVC编程思想
Jul 28 PHP
php中mkdir函数用法实例分析
Nov 15 PHP
PHP中文乱码解决方案
Mar 05 PHP
PHP全局变量与超级全局变量区别分析
Apr 01 PHP
PHP实现加密文本文件并限制特定页面的存取的效果
Oct 21 PHP
Yii框架用户登录session丢失问题解决方法
Jan 07 PHP
Laravel5.4框架使用socialite实现github登录的方法
Mar 20 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 字符串分割和比较
2009/10/06 PHP
CI框架无限级分类+递归的实现代码
2016/11/01 PHP
PHP的curl函数的用法总结
2019/02/14 PHP
laravel 5.5 关闭token的3种实现方式
2019/10/24 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
Javascript Object.extend
2010/05/18 Javascript
jQuery示例收集
2010/11/05 Javascript
JavaScript利用正则表达式去除日期中的“-”
2014/07/01 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
2014/09/26 Javascript
Jquery对象和Dom对象的区别分析
2014/11/20 Javascript
JavaScript实现简单的二级导航菜单实例
2015/04/15 Javascript
jQuery预加载图片常用方法
2015/06/15 Javascript
如何利用JS通过身份证号获取当事人的生日、年龄、性别
2016/01/22 Javascript
基于angularjs实现图片放大镜效果
2016/08/31 Javascript
对javascript继承的理解
2016/10/11 Javascript
js实现定时进度条完成后切换图片
2017/01/04 Javascript
VUE中v-model和v-for指令详解
2017/06/23 Javascript
Angular2环境搭建具体操作步骤(推荐)
2017/08/04 Javascript
AngularJS双向数据绑定原理之$watch、$apply和$digest的应用
2018/01/30 Javascript
基于vue.js中事件修饰符.self的用法(详解)
2018/02/23 Javascript
小程序实现分类页
2019/07/12 Javascript
[02:38]DOTA2亚洲邀请赛 IG战队巡礼
2015/02/03 DOTA
[53:03]Optic vs TNC 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python实现的检测网站挂马程序
2014/11/30 Python
python开发之thread实现布朗运动的方法
2015/11/11 Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
2020/09/29 Python
2020年10款优秀的Python第三方库,看看有你中意的吗?
2021/01/12 Python
css3进阶之less实现星空动画的示例代码
2019/09/10 HTML / CSS
AHAVA美国官方网站:死海海泥护肤品牌
2016/10/18 全球购物
香港礼品网站:GiftU eshop
2017/09/01 全球购物
维珍澳洲航空官网:Virgin Australia
2017/09/08 全球购物
计算机专业毕业生推荐信
2013/11/25 职场文书
简历中的自我评价范文
2014/02/05 职场文书
运动会口号16字
2014/06/07 职场文书
加班费申请报告
2015/05/15 职场文书
python for循环赋值问题
2021/06/03 Python