频率使用php计算表中单个列中的所有单词

时间:2012-02-29 14:28:10

标签: php mysql

id | words                            | other
1  | lorem ipsum                      | dsf
2  | Lorem Ipsum is simply dummy      | sads

现在给出这个表我希望在php中进行查询,这将在整个单词列中给出频率计数

预期的输出应为 -

loreum-2
ipsum-2
is-1
simply-1
dummy-1

P.s.-我正在传递数据 使用 -

$array = array($word);
print_r(array_count_values($array)); 

它给了我输出

lorem ipsum -1
Lorem Ipsum is simply dummy-1

请帮助我,我对此非常陌生。

2 个答案:

答案 0 :(得分:1)

$words = explode(' ',$word);
$result = array();
foreach($words as $w){
  $result[$w]++;
}
print_r($result);

考虑到你将不得不迭代数据库结果的每一行来检查每个单词。上述算法仅适用于一个短语或一行,可根据您的需要进行修改。我不知道你是否必须巩固所有的单词,或者你必须得到每一行的每个单词的计数。

答案 1 :(得分:1)

这是我要做的事情的要点......我只想解释一下这个想法,而不是直接提供代码。

目标是创建一个数组,比如N,它有一系列键,每个键对应一个单词,每个键的值对应于该键(单词)的出现次数。

对于数据库表中的每一行,

使用空格作为分隔符来分解单词列以创建数组X。

对于X中的每个单词,

检查密钥是否存在于N中,如果密钥不存在则创建密钥并将其值设置为1,否则将其当前值增加1

现在你已经完全填充了你想要的N.