ホームページ >バックエンド開発 >PHPチュートリアル >PHPを使用して配列内の単語の頻度をカウントする方法の詳細な説明

PHPを使用して配列内の単語の頻度をカウントする方法の詳細な説明

巴扎黑
巴扎黑オリジナル
2017-08-13 13:56:061943ブラウズ

この記事では主に、ファイルまたは配列内の単語の頻度を計算するための PHP プログラミングの方法を紹介します。PHP の正規化、配列操作、文字列のトラバーサル、およびその他の関連スキルを含む、単語の頻度をカウントする例を 2 つ示します。次へ

この記事の例では、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 == &#39; &#39;) {
  $results[$word]++;
  $word = "";
 }
 else {
  $word .= $letter;
 }
}
fclose($handle);
print_r($results);

大きいファイルの場合ファイルを保存する場合、2 番目の方法の方が高速かつ安全であり、メモリ例外は発生しません。

以上がPHPを使用して配列内の単語の頻度をカウントする方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。