PHP编程计算文件或数组中单词出现频率的方法


Posted in PHP onMay 22, 2017

本文实例讲述了PHP编程计算文件或数组中单词出现频率的方法。分享给大家供大家参考,具体如下:

如果是小文件,可以一次性读入到数组中,使用方便的数组计数函数进行词频统计(假设文件中内容都是空格隔开的单词):

<?php
$str = file_get_contents("/path/to/file.txt"); //get string from file
preg_match_all("/\b(\w+[-]\w+)|(\w+)\b/",$str,$r); //place words into array $r - this includes hyphenated words
$words = array_count_values(array_map("strtolower",$r[0])); //create new array - with case-insensitive count
arsort($words); //order from high to low
print_r($words)

如果是大文件,读入内存就不合适了,可以采用如下方法:

<?php
$filename = "/path/to/file.txt";
$handle = fopen($filename,"r");
if ($handle === false) {
 exit;
}
$word = "";
while (false !== ($letter = fgetc($handle))) {
 if ($letter == ' ') {
  $results[$word]++;
  $word = "";
 }
 else {
  $word .= $letter;
 }
}
fclose($handle);
print_r($results);

对于大文件,第二种方法比较快比较安全,不会引起内存异常。

PHP 相关文章推荐
递归列出所有文件和目录
Oct 09 PHP
PHP生成便于打印的网页
Oct 09 PHP
PHP开发中四种查询返回结果分析
Jan 02 PHP
destoon二次开发常用数据库操作
Jun 21 PHP
微信公众号开发之微信公共平台消息回复类实例
Nov 14 PHP
php将文本文件转换csv输出的方法
Dec 31 PHP
php实现多维数组中每个单元值(数字)翻倍的方法
Feb 16 PHP
PHP的Yii框架中移除组件所绑定的行为的方法
Mar 18 PHP
ThinkPHP路由机制简介
Mar 23 PHP
thinkphp实现分页显示功能
Dec 03 PHP
php中如何执行linux命令详解
Nov 06 PHP
PHP 对接美团大众点评团购券(门票)的开发步骤
Apr 03 PHP
Yii2框架中日志的使用方法分析
May 22 #PHP
浅谈PHP面向对象之访问者模式+组合模式
May 22 #PHP
php readfile下载大文件失败的解决方法
May 22 #PHP
老生常谈PHP 文件写入和读取(必看篇)
May 22 #PHP
PHP中trait使用方法详细介绍
May 21 #PHP
php写app接口并返回json数据的实例(分享)
May 20 #PHP
PHP实现json_decode不转义中文的方法
May 20 #PHP
You might like
基于jquery异步传输json数据格式实例代码
2013/11/23 Javascript
jquery对单选框,多选框,文本框等常见操作小结
2014/01/08 Javascript
Javascript中的getUTCHours()方法使用详解
2015/06/10 Javascript
模仿password输入框的实现代码
2016/06/07 Javascript
AngularJS 限定$scope的范围实例详解
2017/06/23 Javascript
AngularJS实现动态切换样式的方法分析
2018/06/26 Javascript
layui 监听表格复选框选中值的方法
2018/08/15 Javascript
vue添加axios,并且指定baseurl的方法
2018/09/19 Javascript
Vue form表单动态添加组件实战案例
2019/09/02 Javascript
JS原型prototype和__proto__用法实例分析
2020/03/14 Javascript
JS中准确判断变量类型的方法
2020/06/01 Javascript
js瀑布流布局的实现
2020/06/28 Javascript
原生JavaScript实现随机点名表
2021/01/14 Javascript
pygame学习笔记(6):完成一个简单的游戏
2015/04/15 Python
Python3学习笔记之列表方法示例详解
2017/10/06 Python
python如何实现反向迭代
2018/03/20 Python
Django框架模板语言实例小结【变量,标签,过滤器,继承,html转义】
2019/05/23 Python
Python实现计算对象的内存大小示例
2019/07/10 Python
Python 日期区间处理 (本周本月上周上月...)
2019/08/08 Python
Python字符串格式化输出代码实例
2019/11/22 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
2020/02/03 Python
python opencv圆、椭圆与任意多边形的绘制实例详解
2020/02/06 Python
python实现翻译word表格小程序
2020/02/27 Python
Python统计学一数据的概括性度量详解
2020/03/03 Python
python 链接sqlserver 写接口实例
2020/03/11 Python
python 解决Fatal error in launcher:错误问题
2020/05/21 Python
护理专业自我鉴定
2014/01/30 职场文书
运动会开幕式主持词
2014/03/28 职场文书
商务日语专业自荐信
2014/04/17 职场文书
销售团队激励口号
2014/06/06 职场文书
中文专业求职信
2014/06/20 职场文书
医学生求职信
2014/07/01 职场文书
2014年庆祝国庆65周年演讲稿
2014/09/21 职场文书
2014年社区党建工作总结
2014/11/11 职场文书
小学四年级班主任工作经验交流材料
2015/11/02 职场文书
学习焦裕禄先进事迹心得体会
2016/01/23 职场文书