采用数组(或字符串)术语,如何有效地删除常用术语?

时间:2012-06-26 15:19:32

标签: php arrays

这是一个有点含糊不清的问题,为此我道歉。

我使用以下代码从$_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个字以下的单词
  • 常用术语......

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

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


编辑:说明

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

因此,常见的术语基本上是任何看似非常规律的,当然也不会联系在一起;经常使用的术语,如“有时”,“明显”等等。


提前致谢,

1 个答案:

答案 0 :(得分:2)

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

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

就普通术语而言,您可以遍历数据并删除超过X次的条款,除此之外,我认为您必须对其进行硬编码。