【发布时间】:2014-06-26 19:39:06
【问题描述】:
我需要帮助对字符串中单词的实例进行排序和计数。
假设我有一个关于单词的集合:
快乐美丽快乐线梨杜松子酒快乐线摇滚快乐线梨
如何使用php计算字符串中每个单词的每个实例并循环输出:
There are $count instances of $word
这样上面的循环就会输出:
happy 有 4 个实例。
有 3 行实例。
gin 有 2 个实例......
【问题讨论】:
标签: php
我需要帮助对字符串中单词的实例进行排序和计数。
假设我有一个关于单词的集合:
快乐美丽快乐线梨杜松子酒快乐线摇滚快乐线梨
如何使用php计算字符串中每个单词的每个实例并循环输出:
There are $count instances of $word
这样上面的循环就会输出:
happy 有 4 个实例。
有 3 行实例。
gin 有 2 个实例......
【问题讨论】:
标签: php
使用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 使函数返回一个包含所有找到的单词的数组。
要对条目进行排序,请使用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.
【讨论】: