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实现的在线人员函数库
Apr 09 PHP
php 破解防盗链图片函数
Dec 09 PHP
PHP 危险函数解释 分析
Apr 22 PHP
PHP中的正则表达式函数介绍
Feb 27 PHP
仿Aspnetpager的一个PHP分页类代码 附源码下载
Oct 08 PHP
ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
Nov 05 PHP
Zend Framework教程之Application用法实例详解
Mar 14 PHP
Apache无法自动跳转却显示目录的解决方法
Nov 30 PHP
ThinkPHP实现附件上传功能
Apr 27 PHP
php图片合成方法(多张图片合成一张)
Nov 25 PHP
解决tp5在nginx下修改配置访问的问题
Oct 16 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
《五等分的花嫁》漫画完结!2020年10月第2期TV动画制作组换血!
2020/03/06 日漫
phpMyAdmin 安装及问题总结
2009/05/28 PHP
wamp服务器访问php非常缓慢的解决过程
2015/07/01 PHP
PHP实现简单爬虫的方法
2015/07/29 PHP
php实现倒计时效果
2015/12/19 PHP
PDO::getAvailableDrivers讲解
2019/01/28 PHP
PHP实现简单的计算器
2020/08/28 PHP
用js实现计算代码行数的简单方法附代码
2007/08/13 Javascript
iframe中子父类窗口调用JS的方法及注意事项
2015/08/25 Javascript
全面解析Bootstrap表单使用方法(表单样式)
2015/11/24 Javascript
jQuery实现的简单分页示例
2016/06/01 Javascript
深入理解javascript中concat方法
2016/12/12 Javascript
jQuery实现jQuery-form.js实现异步上传文件
2017/04/28 jQuery
angular使用bootstrap方法手动启动的实例代码
2017/07/18 Javascript
使用Node.js搭建静态资源服务详细教程
2017/08/02 Javascript
JavaScript实现随机数生成器(去重)
2017/10/13 Javascript
node.js命令行教程图文详解
2019/05/27 Javascript
vue按需加载实例详解
2019/09/06 Javascript
vue中更改数组中属性,在页面中不生效的解决方法
2019/10/30 Javascript
vue中axios防止多次触发终止多次请求的示例代码(防抖)
2020/02/16 Javascript
微信小程序实现菜单左右联动
2020/05/19 Javascript
一文读懂vue动态属性数据绑定(v-bind指令)
2020/07/20 Javascript
使用PDB模式调试Python程序介绍
2015/04/05 Python
Python中运算符&quot;==&quot;和&quot;is&quot;的详解
2016/10/08 Python
浅谈python 线程池threadpool之实现
2017/11/17 Python
微信跳一跳自动运行python脚本
2018/01/08 Python
Django实现WebSSH操作物理机或虚拟机的方法
2019/11/06 Python
python批量处理txt文件的实例代码
2020/01/13 Python
德国网上宠物店:Zoobio
2018/05/23 全球购物
公司部门司机岗位职责
2014/01/03 职场文书
应用英语专业自荐信
2014/01/26 职场文书
信息技术课后反思
2014/04/27 职场文书
工作保证书
2015/01/17 职场文书
共青团员自我评价
2015/03/10 职场文书
房产电话营销开场白
2015/05/29 职场文书
Python可视化学习之seaborn绘制矩阵图详解
2022/02/24 Python