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过滤危险html代码
Aug 18 PHP
php 中英文语言转换类
Sep 07 PHP
PHP实现邮件群发的源码
Jun 18 PHP
php使用GeoIP库实例
Jun 27 PHP
php实现的Cookies操作类实例
Sep 24 PHP
php使用pdo连接报错Connection failed SQLSTATE的解决方法
Dec 15 PHP
PHP中的闭包(匿名函数)浅析
Feb 07 PHP
PHP中4种常用的抓取网络数据方法
Jun 04 PHP
php简单复制文件的方法
May 09 PHP
PHP获取指定日期是星期几的实现方法
Nov 30 PHP
根据key删除数组中指定的元素实现方法
Mar 02 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
Nov 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
默默小谈PHP&amp;MYSQL分页原理及实现
2007/01/02 PHP
php简单封装了一些常用JS操作
2007/02/25 PHP
完美利用Yii2微信后台开发的系列总结
2016/07/18 PHP
php中使用websocket详解
2016/09/23 PHP
php封装的smartyBC类完整实例
2016/10/19 PHP
yii2-GridView在开发中常用的功能及技巧总结
2017/01/07 PHP
PHP扩展mcrypt实现的AES加密功能示例
2019/01/29 PHP
如何用javascript去掉字符串里的所有空格
2007/02/08 Javascript
jQuery与ExtJS之选择实例分析
2010/08/19 Javascript
js对象的复制继承实例
2015/01/10 Javascript
JavaScript插件化开发教程(六)
2015/02/01 Javascript
两种JS实现屏蔽鼠标右键的方法
2020/08/20 Javascript
js实现网页图片延时加载 提升网页打开速度
2016/01/26 Javascript
微信小程序  wx.request合法域名配置详解
2016/11/23 Javascript
详解angular中的作用域及继承
2017/05/31 Javascript
JavaScript实现简单的双色球(实例讲解)
2017/07/31 Javascript
基于Vue2的独立构建与运行时构建的差别(详解)
2017/12/06 Javascript
vue的token刷新处理的方法
2018/07/17 Javascript
微信小程序搭建(mpvue+mpvue-weui+fly.js)的详细步骤
2018/09/18 Javascript
对vue v-if v-else-if v-else 的简单使用详解
2018/09/29 Javascript
Layui 数据表格批量删除和多条件搜索的实例
2019/09/04 Javascript
js实现倒计时秒杀效果
2020/03/25 Javascript
详尽讲述用Python的Django框架测试驱动开发的教程
2015/04/22 Python
python实现12306火车票查询器
2017/04/20 Python
Python二进制串转换为通用字符串的方法
2018/07/23 Python
wxPython之wx.DC绘制形状
2019/11/19 Python
Python timer定时器两种常用方法解析
2020/01/20 Python
Python3 hashlib密码散列算法原理详解
2020/03/30 Python
给ubuntu18安装python3.7的详细教程
2020/06/08 Python
Columbia Sportswear法国官网:全球户外品牌
2020/09/25 全球购物
网络、C以及其他硬件方面的面试题
2016/08/23 面试题
一份报关员的职业规划范文
2014/01/08 职场文书
医药营销个人求职信
2014/04/12 职场文书
办公用房租赁协议书
2014/11/29 职场文书
2015年工程部工作总结
2015/04/30 职场文书
通讯稿格式及范文
2015/07/22 职场文书