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函数
Feb 16 PHP
PHP下打开phpMyAdmin出现403错误的问题解决方法
May 23 PHP
PHP输出英文时间日期的安全方法(RFC 1123格式)
Jun 13 PHP
PHP中使用sleep造成mysql读取失败的案例和解决方法
Aug 21 PHP
php中get_cfg_var()和ini_get()的用法及区别
Mar 04 PHP
PHP微信红包API接口
Dec 05 PHP
jQuery向下滚动即时加载内容实现的瀑布流效果
Jan 07 PHP
Yii2中YiiBase自动加载类、引用文件方法分析(autoload)
Jul 25 PHP
PHP定时任务获取微信access_token的方法
Oct 10 PHP
Linux下源码包安装Swoole及基本使用操作图文详解
Apr 02 PHP
php过滤htmlspecialchars() 函数实现把预定义的字符转换为 HTML 实体用法分析
Jun 25 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
Feb 15 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
ninety plus是什么?ninety plus咖啡好吗?
2021/03/04 新手入门
PHP新手上路(二)
2006/10/09 PHP
一段防盗连的PHP代码
2006/12/06 PHP
PHP IE中下载附件问题解决方法
2014/01/07 PHP
php实现建立多层级目录的方法
2014/07/19 PHP
PHP实现获取第一个中文首字母并进行排序的方法
2017/05/09 PHP
PHP实现根据数组某个键值大小进行排序的方法
2018/03/13 PHP
Discuz不使用插件实现简单的打赏功能
2019/03/21 PHP
详解PHP PDO简单教程
2019/05/28 PHP
PHP数组array类常见操作示例
2020/05/15 PHP
一个加密JavaScript的开源工具PACKER2.0.2
2006/11/04 Javascript
基于jquery的分页控件(C#)
2011/01/06 Javascript
jQuery实现点击标题输入详细信息
2013/04/16 Javascript
JS 删除字符串最后一个字符的实现代码
2014/02/20 Javascript
jQuery ajax serialize() 方法使用示例
2014/11/02 Javascript
全面介绍javascript实用技巧及单竖杠
2016/07/18 Javascript
BootStrap数据表格实例代码
2017/09/13 Javascript
AngularJS实现注册表单验证功能
2017/10/16 Javascript
使用ngrok+express解决本地环境中微信接口调试问题
2018/02/26 Javascript
Layui点击图片弹框预览的实现方法
2019/09/16 Javascript
探寻python多线程ctrl+c退出问题解决方案
2014/10/23 Python
Django 视图层(view)的使用
2018/11/09 Python
Django处理多用户类型的方法介绍
2019/05/18 Python
python os模块简单应用示例
2019/05/23 Python
Django Python 获取请求头信息Content-Range的方法
2019/08/06 Python
matplotlib 画双轴子图无法显示x轴的解决方法
2020/07/27 Python
Python中过滤字符串列表的方法
2020/12/22 Python
HTML5网页录音和上传到服务器支持PC、Android,支持IOS微信功能
2019/04/26 HTML / CSS
澳大利高级泳装品牌:Bondi Born
2018/05/23 全球购物
下面代码从性能上考虑,有什么问题
2015/04/03 面试题
销售人才自我评价范文
2014/09/27 职场文书
初中生300字旷课检讨书
2014/11/19 职场文书
先进个人总结范文
2015/02/15 职场文书
中国现代文学之经典散文三篇
2019/09/18 职场文书
pandas 实现将NaN转换为None
2021/05/14 Python
nginx的zabbix 5.0安装部署的方法步骤
2021/07/16 Servers