我知道我可以计算字符串中单词的常见出现次数,但对于多个字符串,最佳解决方案是什么?或者在这种情况下,表中的行?
示例表:
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 使用它的 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 在线文档弄清楚如何做到这一点,对吧?
关于php - 表格中的常用字数统计,而不仅仅是一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22400446/