Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从搜索的字符串中删除常用词_Php_String_Comparison - Fatal编程技术网

Php 从搜索的字符串中删除常用词

Php 从搜索的字符串中删除常用词,php,string,comparison,Php,String,Comparison,好的,我有一个由空格分隔的字符串,即 $commonwords='a,an,and,I,it,is,do,do,for,from,go,how,the等' $commonwords = 'a,an,and,I,it,is,do,does,for,from,go,how,the,etc'; $commonwords = explode(",", $commonwords); $search = "How do I search for files"; $search = explode("

好的,我有一个由空格分隔的字符串,即

$commonwords='a,an,and,I,it,is,do,do,for,from,go,how,the等'

$commonwords = 'a,an,and,I,it,is,do,does,for,from,go,how,the,etc';

$commonwords = explode(",", $commonwords);


$search = "How do I search for files";

$search = explode(" ", $search);

foreach($search as $value){
    if(!in_array($value, $commonwords)){
        echo "$value<br/>";
        $query[] = $value;
    }
}   


    $query = implode(" ", $query);

    echo $query;
?>
我收到一个来自$_POST['searchquery']的搜索查询

我想从搜索字符串中删除任何常用词,我要寻找的最终结果将是更简洁的关键字,然后我可以使用这些关键字查询数据库

因此,如果用户搜索“如何搜索文件”


删除所有常用词后,字符串将变为“搜索文件”。

这将起作用,但您必须在$commonwords中添加大写的“how”
$commonwords = 'a,an,and,I,it,is,do,does,for,from,go,how,the,etc';

$commonwords = explode(",", $commonwords);


$search = "How do I search for files";

$search = explode(" ", $search);

foreach($search as $value){
    if(!in_array($value, $commonwords)){
        echo "$value<br/>";
        $query[] = $value;
    }
}   


    $query = implode(" ", $query);

    echo $query;
?>
$commonwords='a,an,and,I,it,is,do,do,for,from,go,how,the,etc';
$commonwords = 'a,an,and,I,it,is,do,does,for,from,go,how,the,etc';

$commonwords = explode(",", $commonwords);


$search = "How do I search for files";

$search = explode(" ", $search);

foreach($search as $value){
    if(!in_array($value, $commonwords)){
        echo "$value<br/>";
        $query[] = $value;
    }
}   


    $query = implode(" ", $query);

    echo $query;
?>
$commonwords=爆炸(“,”,$commonwords);
$commonwords = 'a,an,and,I,it,is,do,does,for,from,go,how,the,etc';

$commonwords = explode(",", $commonwords);


$search = "How do I search for files";

$search = explode(" ", $search);

foreach($search as $value){
    if(!in_array($value, $commonwords)){
        echo "$value<br/>";
        $query[] = $value;
    }
}   


    $query = implode(" ", $query);

    echo $query;
?>
$search=“如何搜索文件”; $search=explode(“,$search”); foreach($value搜索){ if(!in_数组($value,$commonwords)){
$commonwords = 'a,an,and,I,it,is,do,does,for,from,go,how,the,etc';

$commonwords = explode(",", $commonwords);


$search = "How do I search for files";

$search = explode(" ", $search);

foreach($search as $value){
    if(!in_array($value, $commonwords)){
        echo "$value<br/>";
        $query[] = $value;
    }
}   


    $query = implode(" ", $query);

    echo $query;
?>
回显“$value
”; $query[]=$value; } } $query=内爆(“,$query”); echo$query; ?>
试试这个():


为了获得更好的结果,将常用词和搜索词转换为小写或大写,这里我使用小写

<?php
$commonwords = 'a,an,and,i,it,is,do,does,for,from,go,how,the,etc';

$commonwords = explode(",", $commonwords);


$search = strtolower("How do I search for files");

$search = explode(" ", $search);

foreach($search as $value){
    if(!in_array($value, $commonwords)){
       $query[] = $value;
    }
} 

    $query = implode(" ", $query);

    echo $query; // this is output
?>

这里有一个用于删除停止字的库:。您可以这样使用它:

echo remove_stop_words('The quick brown fox jumps over the lazy dog');
// quick brown fox jumps   lazy dog

顺便说一句,你要找的术语是“停止词”。不,我不知道为什么叫停止词。是的,我在考虑大小写匹配,可能只会在$commonwords和$searchquery上使用strtoupper。回答得很好,速度也很快。今天不能胡思乱想-我想我仍然在忍受新年宿醉,无论如何我感谢你的帮助@凯,不客气。如果您最喜欢,请选择我的答案作为正式解决方案。array_diff()会保存您的time@Letmesee酷。我不知道这个函数。我个人会在foreach中降低大小写,这样可以在case中搜索某些内容,但仍然可以删除列表中未加大小写的单词。
$commonwords = 'a,an,and,I,it,is,do,does,for,from,go,how,the,etc';

$commonwords = explode(",", $commonwords);


$search = "How do I search for files";

$search = explode(" ", $search);

foreach($search as $value){
    if(!in_array($value, $commonwords)){
        echo "$value<br/>";
        $query[] = $value;
    }
}   


    $query = implode(" ", $query);

    echo $query;
?>