0

以下のこのコードは基本的に、配列内の単語の出現回数をカウントします。

私が今やりたいことは、 を取得し、それをキーとして配列に割り当て、その値$wordに割り当てることです。$WordCount[$word]たとえば、「ジャンプ」という単語を取得すると、配列のキーとして自動的に割り当てられ、「ジャンプ」という単語の出現回数 ( $WordCount[$word]) がその値として割り当てられます。何か提案はありますか?

function Count($text)
{
    $text = strtoupper($text);
    $WordCount = str_word_count($text, 2);

    foreach($WordCount as $word)
    {   
        $WordCount[$word] = isset($WordCount[$word]) ? $WordCount[$word] + 1 : 1;
        echo "{$word} has occured {$WordCount[$word]} time(s) in the text <br/>";                       
    }
}
4

1 に答える 1

1

このコードを試してください:

<?php

$str = 'hello is my favorite word.  hello to you, hello to me.  hello is a good word';

$words = str_word_count($str, 1);

$counts = array();
foreach($words as $word) {
    if (!isset($counts[$word])) $counts[$word] = 0;
    $counts[$word]++;
}

print_r($counts);

出力:

Array
(
    [hello] => 4
    [is] => 2
    [my] => 1
    [favorite] => 1
    [word] => 2
    [to] => 2
    [you] => 1
    [me] => 1
    [a] => 1
    [good] => 1
)

すべての単語を完全にグループ化するまで、ループ内でカウントの値をエコーすることはできません。

于 2012-07-26T00:58:59.153 に答える