1

这是一个有点模棱两可的问题,对此我深表歉意。

$_POST使用以下代码从值中获取了大量单词:

$text2check = array();          

$fields = array( "etymology", "distribution", "habitat", "max_size", "aquarium_size", "maintenance", "water_chemistry", "diet",
    "behaviour", "dimorphism", "reproduction", "misc_notes" );

$fields = array( "distribution" );

foreach ( $_POST as $key => $value ) {
    if ( in_array( $key, $fields ) ) {
        $text2check = array_merge( $text2check, explode( " ", strip_tags( utf8_decode( $value ) ) ) );
    }
}

我想要做的 - 以绝对最高的效率 - 是删除某些单词:

  • 重复
  • 4个字符以下的单词
  • 常用术语...

常用术语是我根本不熟悉的东西。如何确定一个常用词?这仅仅是对互联网上的一系列常用术语进行硬编码并与之进行比较的情况吗?

在将数组与数组进行比较时,最有效的方法是什么?


编辑:解释

这个函数背后的目的对我来说有点复杂。根据这个答案,我正在尝试运行一个内容过滤器来检查某些术语,然后将它们链接到我网站的其他部分。由于每个帖子有大量的字数和大量的潜在链接,我试图在运行过滤器之前进行预检查,以减少运行过滤器所需的链接数量。

因此,常用术语基本上是任何经常出现并且肯定不会链接的东西;经常使用的术语,例如“有时”、“显然”等。


提前致谢,

4

1 回答 1

2

为了删除重复项,array_unique() 可以解决问题。

四个字符以下的单词,只需遍历数组并检查。

就常用术语而言,您可以遍历数据并删除出现次数超过 X 的术语,除了我认为您必须对它们进行硬编码。

于 2012-06-26T15:23:49.427 回答