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 相关文章推荐
php压缩多个CSS为一个css的代码并缓存
Apr 21 PHP
PH P5.2至5.5、5.6的新增功能详解
Jul 14 PHP
php cookie名使用点号(句号)会被转换
Oct 23 PHP
php查找指定目录下指定大小文件的方法
Nov 28 PHP
php上传图片获取路径及给表单字段赋值的方法
Jan 23 PHP
PHP getallheaders无法获取自定义头(headers)的问题
Mar 23 PHP
PHP获取用户访问IP地址的5种方法
May 16 PHP
php+ajax登录跳转登录实现思路
Jul 31 PHP
php str_replace替换指定次数的方法详解
May 05 PHP
PHP+swoole+linux实现系统监控和性能优化操作示例
Apr 15 PHP
Yii框架操作cookie与session的方法实例详解
Sep 04 PHP
PHP使用非对称加密算法RSA
Apr 21 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
咖啡是不是喝了会上瘾?咖啡是必须品吗!
2021/03/04 新手入门
PHP中对数组的一些常用的增、删、插操作函数总结
2015/11/27 PHP
Laravel实现定时任务的示例代码
2017/08/10 PHP
javascript之卸载鼠标事件的代码
2007/05/14 Javascript
jquery选择器(常用选择器说明)
2010/09/28 Javascript
JavaScript中清空数组的三种方法分享
2011/04/07 Javascript
jQuery+JSON+jPlayer实现QQ空间音乐查询功能示例
2013/06/17 Javascript
js 截取或者替换字符串中的数字实现方法
2016/06/13 Javascript
jQuery读取XML文件的方法示例
2017/02/03 Javascript
js获取ip和地区
2017/03/10 Javascript
vue实现商品加减计算总价的实例代码
2018/08/12 Javascript
详解VUE调用本地json的使用方法
2019/05/15 Javascript
微信小程序如何引用外部js,外部样式,公共页面模板
2019/07/23 Javascript
详细分析vue表单数据的绑定
2020/07/20 Javascript
解决vue动态下拉菜单 有数据未反应的问题
2020/08/06 Javascript
[03:46]DOTA2英雄基础教程 维萨吉
2013/12/11 DOTA
仅利用30行Python代码来展示X算法
2015/04/01 Python
Python探索之URL Dispatcher实例详解
2017/10/28 Python
TensorFlow实现卷积神经网络CNN
2018/03/09 Python
Python之用户输入的实例
2018/06/22 Python
Python数据类型之String字符串实例详解
2019/05/08 Python
运行tensorflow python程序,限制对GPU和CPU的占用操作
2020/02/06 Python
python3 字符串知识点学习笔记
2020/02/08 Python
Pandas —— resample()重采样和asfreq()频度转换方式
2020/02/26 Python
Python 实现使用空值进行赋值 None
2020/03/12 Python
python操作yaml说明
2020/04/08 Python
新加坡航空官方网站:Singapore Airlines
2016/10/13 全球购物
英国鲜花速递:Serenata Flowers
2018/04/03 全球购物
最新销售员个人自荐信
2013/09/21 职场文书
马云的职业生涯规划之路
2014/01/01 职场文书
2014国庆节主题活动方案:快乐的国庆节
2014/09/16 职场文书
2015元旦文艺汇演主持稿(开场白+结束语)
2014/12/14 职场文书
北京英语导游词
2015/02/12 职场文书
小学教师教学反思
2016/02/24 职场文书
Redis 哨兵集群的实现
2021/06/18 Redis
试用1103暨1103、1101同门大比武 [ DAIWEI ]
2022/04/05 无线电