PHP編程計(jì)算文件或數(shù)組中單詞出現(xiàn)頻率的方法
本文實(shí)例講述了PHP編程計(jì)算文件或數(shù)組中單詞出現(xiàn)頻率的方法。分享給大家供大家參考,具體如下:
如果是小文件,可以一次性讀入到數(shù)組中,使用方便的數(shù)組計(jì)數(shù)函數(shù)進(jìn)行詞頻統(tǒng)計(jì)(假設(shè)文件中內(nèi)容都是空格隔開的單詞):
<?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)
如果是大文件,讀入內(nèi)存就不合適了,可以采用如下方法:
<?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);
對(duì)于大文件,第二種方法比較快比較安全,不會(huì)引起內(nèi)存異常。
PS:這里再為大家推薦2款非常方便的統(tǒng)計(jì)工具供大家參考使用:
在線字?jǐn)?shù)統(tǒng)計(jì)工具:
http://tools.jb51.net/code/zishutongji
在線字符統(tǒng)計(jì)與編輯工具:
http://tools.jb51.net/code/char_tongji
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php常用函數(shù)與技巧總結(jié)》、《php字符串(string)用法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語法入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
PHP測(cè)試框架PHPUnit組織測(cè)試操作示例
這篇文章主要介紹了PHP測(cè)試框架PHPUnit組織測(cè)試,結(jié)合實(shí)例形式分析了PHPUnit組織測(cè)試具體步驟、相關(guān)命令與操作技巧,需要的朋友可以參考下2018-05-05
phpMyAdmin鏈接MySql錯(cuò)誤 個(gè)人解決方案
phpMyAdmin 試圖連接到 MySQL 服務(wù)器,但服務(wù)器拒絕連接。您應(yīng)該檢查 config.inc.php 中的主機(jī)、用戶名和密碼,并且確定這些信息與 MySQL 服務(wù)器的管理員所給出的信息一致。2009-12-12
PHP實(shí)現(xiàn)無限級(jí)分類(不使用遞歸)
這篇文章主要介紹了在不使用遞歸的情況下PHP實(shí)現(xiàn)無限級(jí)分類,感興趣的小伙伴們可以參考一下2015-10-10
表單提交錯(cuò)誤后返回內(nèi)容消失問題的解決方法(PHP網(wǎng)站)
這篇文章主要介紹了表單提交錯(cuò)誤后返回內(nèi)容消失問題的解決方法,需要的朋友可以參考下2015-10-10
六個(gè)步驟,從零開始教你搭建基于WordPress的個(gè)人博客
這篇文章主要介紹了六個(gè)步驟,從零開始教你搭建基于WordPress的個(gè)人博客,步驟講解的很清楚,不知道如何搭建wordpress的同學(xué)可以跟著搭建下2021-01-01

