我知道我可以计算一个字符串中常见的单词,但是多重字符串的最佳解决方案是什么?或者在这种情况下,表中的行?
示例表:
ID Title
------------
1 red car
2 blue car
3 red bike
4 green car
5 red and green car
我想从列中返回前三个常用词及其计数:title eg。
Word Count
--------------
car 4
red 3
green 2
我正在使用mysql& PHP
有一种有效的方法吗?
答案 0 :(得分:2)
可以使用MySQL string manipulation methods来完成。使用这些,您可以创建一个查询,让您获得所有"单词"从你的表行。 但是,在MySQL中拆分字符串并不是一个小问题。遗憾的是,MySQL没有拆分或爆炸方法。 阅读它here。
如果您将该查询用作子查询,则可以使用order by和MySQL的字符串长度方法来获取单词的有序列表及其出现。
您可以选择迭代所有MySQL结果,使用您找到的单词填充本地PHP数组并保持计数。请参见此示例:
<?php
// connect to db and so fort
...
$wordCounterArray = array();
while(($row = mysqlfetch_assoc($mysqlHandle) !== false ) {
$words = explode(' ',$row['Title']);
foreach ($words as $word) {
if(array_key_exists($word, $wordCounterArray ) {
$wordCounterArray[$word]++;
}
else {
$wordCounterArray[$word] = 1;
}
}
}
现在你仍然需要按照它的值排序那个数组,但我想你会弄清楚如何用google和php在线文档做到这一点吗?
答案 1 :(得分:0)