laravel:用雄辩的语言获取最常用的单词

bprjcwpo  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(300)

我有一个表后,它有一个列的内容。内容列为文本。我想以雄辩的口才获得今天内容中最常用的词语

kuhbmx9i

kuhbmx9i1#

我想你要找的是这个。
注意:由于您没有提供任何表结构,我不知道如何过滤今天的帖子。我希望有一个专栏叫 date .
数一数今天用过的所有单词。

// array of all the content strings.
$contents = Post::where('date', date('Y-m-d'))->pluck('content');

// final result will be stored here as a key value pair.
// used count against each word.
$word_count = [];

foreach($contents as $content) {

    // array of each word in the content separated by 'space'.
    $words = explode(' ', $content);

    foreach($words as $word) {

        // if the word has already used +1 the count, else set the count as 1.
        $count = array_key_exists($word, $word_count) ? ($word_count[$word] + 1) : 1;

        // set new word count to the array.
        array_set($word_count, $word, $count);
    }
}

$most_used_word = array_search(max($word_count), $word_count);
m1m5dgzv

m1m5dgzv2#

试试这个,假设表名= post 字段名= content :

$mostUsed = Post::take(1)
    ->groupBy('content')
    ->orderBy('content', 'desc')
    ->count('content');

将得到第一个最常见的 content 在表格中,以及:

$mostUsed = Post::groupBy('content')
    ->orderBy('content', 'desc')
    ->count('content');

将获得从最常见到最罕见的寄存器。顺便说一下,根据这个例子,这只是从mysql到elokent的一个改编

相关问题