PHP編程計算文件或數(shù)組中單詞出現(xiàn)頻率的方法
本文實例講述了PHP編程計算文件或數(shù)組中單詞出現(xiàn)頻率的方法。分享給大家供大家參考,具體如下:
如果是小文件,可以一次性讀入到數(shù)組中,使用方便的數(shù)組計數(shù)函數(shù)進行詞頻統(tǒng)計(假設(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);
對于大文件,第二種方法比較快比較安全,不會引起內(nèi)存異常。
PS:這里再為大家推薦2款非常方便的統(tǒng)計工具供大家參考使用:
在線字數(shù)統(tǒng)計工具:
http://tools.jb51.net/code/zishutongji
在線字符統(tǒng)計與編輯工具:
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ù)庫操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計有所幫助。
相關(guān)文章
使用Curl進行抓取遠程內(nèi)容時url中文編碼問題示例探討
在編碼時應(yīng)該只對部分URL編碼,否則URL中的冒號和反斜杠也會被轉(zhuǎn)義,下面有兩個不錯的示例,有類似情況的朋友可以感受下2013-10-10深入理解curl類,可用于模擬get,post和curl下載
本篇文章是對curl類,可用于模擬get,post和curl下載進行了詳細的分析介紹,需要的朋友參考下2013-06-06PHP管理依賴(dependency)關(guān)系工具 Composer 安裝與使用
Composer 是PHP中用來管理依賴(dependency)關(guān)系的工具。你可以在自己的項目中聲明所依賴的外部工具庫(libraries),Composer會幫你安裝這些依賴的庫文件。2014-08-08php Undefined index和Undefined variable的解決方法
這段時間在做項目過程中老是出現(xiàn)這個提示,起初是用$act來接受表單post過來的數(shù)據(jù)2008-03-03php基于閉包實現(xiàn)函數(shù)的自調(diào)用(遞歸)實例分析
這篇文章主要介紹了php基于閉包實現(xiàn)函數(shù)的自調(diào)用,結(jié)合實例形式分析了php閉包實現(xiàn)遞歸的操作方法,需要的朋友可以參考下2016-11-11