gpt4 book ai didi

php - 计算支持 UTF8 的数组中单词的实例数

转载 作者:可可西里 更新时间:2023-10-31 23:21:53 24 4
gpt4 key购买 nike

我正在 php 站点中创建一个 jquery tagcloud。在我的 mysql 数据库中,我有一个“标签”字段,其中会有一个逗号分隔的单词列表。我想生成一系列单词,它们出现的频率。只是为了使事情复杂化,文本将全部使用希伯来语(utf8 编码)。

在英语中,这个解决方案非常有效:

$words = array_count_values(str_word_count($str, 1));
print_r($words);

取自此处php: sort and count instances of words in a given string

对于希伯来语文本,数组未填充。

我找到了这篇文章 str_word_count() function doesn't display Arabic language properly而且,虽然它有效,但它只给出单词总数,并不像前面的函数那样创建结果数组。

我希望结果看起来像这样:

Array
(
[happy] => 4
[beautiful] => 1
[lines] => 3
[pear] => 2
[gin] => 1
[rock] => 1
)

有什么建议吗?

最佳答案

虽然这不是您所希望的答案,但我鼓励您首先重新考虑您的数据库设计。在一个字段中保存多个逗号分隔的标签不是很聪明。您应该为只有两列的标签构建一个单独的表:

  1. 标签
  2. 相应对象/帖子的 ID 或您的应用程序的任何内容

有很多优点:

  • 删除或添加标签更容易。
  • 你可以得到你正在寻找的数组,而不需要一些蹩脚的 php 代码,只需要一个 SQL 查询,比如“select tag, count(id) from tags group by tag”
  • 当您有很多标签时,这会更容易、更快。
  • 最后但同样重要的是,我敢打赌(不确定),MySQL 不会遇到您在 php 中明显遇到的不同字母的问题-

关于php - 计算支持 UTF8 的数组中单词的实例数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17170543/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com