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 相关文章推荐
PHP中实现图片的锐化
Oct 09 PHP
vBulletin HACK----显示话题大小和打开新窗口于论坛索引页
Oct 09 PHP
phpwind中的数据库操作类
Jan 02 PHP
简单的php文件上传(实例)
Oct 27 PHP
PHP中实现生成静态文件的方法缓解服务器压力
Jan 07 PHP
Windows下的PHP安装文件线程安全和非线程安全的区别
Apr 23 PHP
php使用Jpgraph绘制柱形图的方法
Jun 10 PHP
解析WordPress中函数钩子hook的作用及基本用法
Dec 22 PHP
Zend Framework动作助手Redirector用法实例详解
Mar 05 PHP
php 自定义函数实现将数据 以excel 表格形式导出示例
Nov 13 PHP
PHP实现一个按钮点击上传多个图片操作示例
Jan 23 PHP
Thinkphp5框架异常处理操作实例分析
Jun 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
php垃圾代码优化操作代码
2010/08/05 PHP
将一维或多维的数组连接成一个字符串的php代码
2010/08/08 PHP
PHP Session_Regenerate_ID函数双释放内存破坏漏洞
2011/01/27 PHP
PHP文件去掉PHP注释空格的函数分析(PHP代码压缩)
2013/07/02 PHP
PHP连接MSSQL方法汇总
2016/02/05 PHP
Cookie跨域问题解决方案代码示例
2020/11/24 PHP
utf8的编码算法 转载
2006/12/27 Javascript
Wordpress ThickBox 添加“查看原图”效果代码
2010/12/11 Javascript
IE网页js语法错误2行字符1、FF中正常的解决方法
2013/09/09 Javascript
简单方法判断JavaScript对象为null或者属性为空
2014/09/26 Javascript
js propertychange和oninput事件
2014/09/28 Javascript
jquery实现简单的全选和反选功能
2016/01/02 Javascript
JS DOM实现鼠标滑动图片效果
2020/09/17 Javascript
jQuery实现的精美平滑二级下拉菜单效果代码
2016/03/28 Javascript
JavaScript Base64 作为文件上传的实例代码解析
2017/02/14 Javascript
详解Node.js读写中文内容文件操作
2018/10/10 Javascript
详解微信小程序-canvas绘制文字实现自动换行
2019/04/26 Javascript
细说webpack6 Babel的使用详解
2019/09/26 Javascript
vue实现评价星星功能
2020/06/30 Javascript
[02:52]2014DOTA2西雅图国际邀请赛 CIS战队巡礼
2014/07/07 DOTA
Python ValueError: invalid literal for int() with base 10 实用解决方法
2015/06/21 Python
python executemany的使用及注意事项
2017/03/13 Python
python f-string式格式化听语音流程讲解
2019/06/18 Python
教你如何编写、保存与运行Python程序的方法
2019/07/12 Python
python json load json 数据后出现乱序的解决方案
2020/02/27 Python
python 将列表里的字典元素合并为一个字典实例
2020/09/01 Python
Python实现随机爬山算法
2021/01/29 Python
css3媒体查询中device-width和width的区别详解
2020/03/27 HTML / CSS
美国乒乓球设备、配件和服装品牌:Killerspin
2020/06/07 全球购物
大专计算机个人求职的自我评价
2013/10/21 职场文书
信息专业学生学习的自我评价
2014/02/17 职场文书
集团公司党的群众路线教育实践活动工作总结
2014/03/03 职场文书
公司活动总结怎么写
2014/06/25 职场文书
小学教师岗位职责
2015/04/02 职场文书
好人好事新闻稿
2015/07/17 职场文书
OpenCV-Python实现轮廓拟合
2021/06/08 Python