我知道我可以计算字符串中单词的常见出现次数,但是多字符串的最佳解决方案是什么?还是在这种情况下,表中的行?
表格示例:
ID Title
------------
1 red car
2 blue car
3 red bike
4 green car
5 red and green car
我想从列中返回前3个常见单词及其计数:title
Word Count
--------------
car 4
red 3
green 2
我正在使用mysql和PHP
有没有一种有效的方法可以做到这一点?
使用MySQL的字符串操作方法可以做到这一点。使用这些,您可以创建一个查询,使您从表行中获取所有“单词”。但是,在MySQL中拆分字符串不是一个简单的问题。遗憾的是,MySQL没有拆分或爆炸方法。在这里阅读。
如果将该查询用作子查询,则可以使用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在线文档正确地对数组进行处理吗?
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句