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.