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 相关文章推荐
让你同时上传 1000 个文件 (一)
Oct 09 PHP
Apache2中实现多网站域名绑定的实现方法
Jun 01 PHP
PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
Apr 09 PHP
通过PHP current函数获取未知字符键名数组第一个元素的值
Jun 24 PHP
浅析十款PHP开发框架的对比
Jul 05 PHP
浅析php数据类型转换
Jan 09 PHP
php获取文件名后缀常用方法小结
Feb 24 PHP
Yii2创建控制器(createController)方法详解
Jul 23 PHP
php微信开发之自定义菜单完整流程
Oct 08 PHP
Thinkphp5+uploadify实现的文件上传功能示例
May 26 PHP
JS操作XML中DTD介绍及使用方法分析
Jul 04 PHP
PHP 对象接口简单实现方法示例
Apr 13 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下统计用户在线时间的一种尝试
2010/08/26 PHP
PHP实现事件机制的方法
2015/07/10 PHP
TP5(thinkPHP5)框架使用ajax实现与后台数据交互的方法小结
2020/02/10 PHP
Javascript常用运算符(Operators)-javascript基础教程
2007/12/14 Javascript
用javascript获取当页面上鼠标光标位置和触发事件的对象的代码
2009/12/09 Javascript
jquery如何把数组变为字符串传到服务端并处理
2014/04/30 Javascript
JavaScript操作cookie类实例
2015/03/31 Javascript
浅谈javascript中for in 和 for each in的区别
2015/04/23 Javascript
JavaScript获取表格(table)当前行的值、删除行、增加行
2015/07/03 Javascript
浅谈javascript中return语句
2015/07/15 Javascript
javascript DIV实现跟随鼠标移动
2020/03/19 Javascript
jquery实现的回旋滚动效果完整实例【附demo源码下载】
2016/09/20 Javascript
详解Angular 4.x NgIf 的用法
2017/05/22 Javascript
Mac中安装nvm的教程分享
2017/12/11 Javascript
node.js用fs.rename强制重命名或移动文件夹的方法
2017/12/27 Javascript
Vue插件打包与发布的方法示例
2018/08/20 Javascript
说说如何使用Vuex进行状态管理(小结)
2019/04/14 Javascript
回顾Javascript React基础
2019/06/15 Javascript
layui表格数据复选框回显设置方法
2019/09/13 Javascript
JavaScript 实现自己的安卓手机自动化工具脚本(推荐)
2020/05/13 Javascript
vue+ElementUI 关闭对话框清空验证,清除form表单的操作
2020/08/06 Javascript
Python类的定义、继承及类对象使用方法简明教程
2015/05/08 Python
查看django版本的方法分享
2018/05/14 Python
Python3匿名函数用法示例
2018/07/25 Python
python 读取dicom文件,生成info.txt和raw文件的方法
2019/01/24 Python
详解opencv中画圆circle函数和椭圆ellipse函数
2019/12/27 Python
Python中实现输入一个整数的案例
2020/05/03 Python
CSS3的calc()做响应模式布局的实现方法
2017/09/06 HTML / CSS
HTML5 新表单类型示例代码
2018/03/20 HTML / CSS
Html5页面上如何禁止手机虚拟键盘弹出
2020/03/19 HTML / CSS
金融系毕业生自荐书
2014/07/08 职场文书
垂直极限观后感
2015/06/08 职场文书
蜗居观后感
2015/06/11 职场文书
教师岗位说明书
2015/09/30 职场文书
2019个人年度目标制定攻略!
2019/07/12 职场文书
TS 类型兼容教程示例详解
2022/09/23 Javascript