-6

テキストファイルに各単語が何回出現するかを計算するために、好きな言語を使用できるというインタビューがありました。

各単語を読み込んでツリー構造に追加することで C で解決しました。単語が構造内ですべて準備ができている場合、アルゴリズムはノードに追加したカウンターに 1 を追加します。

その人は、私にはたくさんのコードが必要で、面倒だと言い、PHP では 3 行ほどのコードでできると言っていました。

explode()文字列を単語の配列に分割するために を使い始めましたが、その後行き詰まりました。

数行のコードを使用してPHPでこれを行う方法を知っている人はいますか?

4

1 に答える 1

5

これを行う簡単な方法は、完全なファイルを文字列として読み取り、file_get_contents()空白で分割し、結果の配列を実行することですarray_count_values()

$file = file_get_contents( 'text_file.txt');
$array = preg_split( '/\s+/', $file); 
$counts = array_count_values( $array);

終わり!

ただし、これは完全ではありません。句読点がカウントを台無しにする可能性があるためです。したがって、Mark Ba​​ker が指摘するように、ファイル内のすべての単語を で取得し、str_word_count()その配列を で実行する元の方法に戻ることができarray_count_values()ます。

$file = file_get_contents( 'text_file.txt');
$words = str_word_count( $file, 1);
$counts = array_count_values( $words);
于 2012-07-27T14:48:27.187 に答える