php:对给定string中单词的实例进行sorting和计数

我需要帮助sorting和计数string中的单词的实例。

可以说我有一个单词的集合:

快乐美丽的幸福线梨梨杜松子酒快乐线岩幸福线梨

我怎么能使用PHP来计算string中的每个单词的每个实例,并在循环中输出它:

There are $count instances of $word 

所以上面的循环会输出:

有4个快乐的例子。

有3个行的例子。

有2个杜松子酒的例子….

使用str_word_count()array_count_values()

 $str = 'happy beautiful happy lines pear gin happy lines rock happy lines pear '; $words = array_count_values(str_word_count($str, 1)); print_r($words); 

 Array ( [happy] => 4 [beautiful] => 1 [lines] => 3 [pear] => 2 [gin] => 1 [rock] => 1 ) 

str_word_count()1使函数返回所有find的单词的数组。

要sorting条目,请使用arsort() (它保留键):

 arsort($words); print_r($words); Array ( [happy] => 4 [lines] => 3 [pear] => 2 [rock] => 1 [gin] => 1 [beautiful] => 1 ) 

尝试这个:

 $words = explode(" ", "happy beautiful happy lines pear gin happy lines rock happy lines pear"); $result = array_combine($words, array_fill(0, count($words), 0)); foreach($words as $word) { $result[$word]++; } foreach($result as $word => $count) { echo "There are $count instances of $word.\n"; } 

结果:

 There are 4 instances of happy. There are 1 instances of beautiful. There are 3 instances of lines. There are 2 instances of pear. There are 1 instances of gin. There are 1 instances of rock.