1

これが私が思いついたコード行です:

function Count($text)
        {    
            $WordCount = str_word_count($text);         

            $TextToArray = explode(" ", $text);
            $TextToArray2 = explode(" ", $text);

            for($i=0; $i<$WordCount; $i++)
            {
                $count = substr_count($TextToArray2[$i], $text);
            }
            echo "Number of {$TextToArray2[$i]} is {$count}";                                                   
        }

つまり、ここで何が起こるかというと、ユーザーはテキスト、文、または段落を入力することになります。substr_countを使用して、配列内の単語の出現回数を知りたいです。残念ながら、出力は私が本当に必要としているものではありません。助言がありますか?

4

3 に答える 3

1

頻度という単語を含む配列が必要だと思います。

まず、文字列を小文字に変換し、テキストからすべての句読点を削除します。この方法では、「But」、「but」、および「but」のエントリを取得するのではなく、3回以上使用する「but」のエントリを取得します。

次に、str_word_countMark Ba​​kerがテキスト内の単語のリストを取得すると言っているように、2番目の引数を2として使用します。これはおそらく、preg_splitの私の提案よりも効率的です。

次に、配列をウォークし、単語の値を1つインクリメントします。

foreach($words as $word)
  $output[$word] = isset($output[$word]) ? $output[$word] + 1 : 1;
于 2012-07-25T13:56:30.590 に答える
0

私があなたの質問を正しく理解していれば、これもあなたの問題を解決するはずです

function Count($text) {
   $TextToArray = explode(" ", $text); // get all space separated words
   foreach($TextToArray as $needle) {
     $count = substr_count($text, $needle); // Get count of a word in the whole text
     echo "$needle has occured  $count times in the text";
   }
}
于 2012-07-25T13:58:16.603 に答える
0
$WordCounts = array_count_values(str_word_count(strtolower($text),2));
var_dump($WordCounts);
于 2012-07-25T14:02:52.903 に答える