我有一組單詞和一組停用詞。我想要從停用詞數組中刪除那些單詞中的單詞,但代碼會返回所有單詞:使用array_filter過濾數組
function stopwords($x){
return !preg_match("/^(.|a|car|red|the|this|at|in|or|of|is|for|to)$/",$x);
};
$filteredArray = array_filter($wordArray, "stopwords");
爲什麼?
我有一組單詞和一組停用詞。我想要從停用詞數組中刪除那些單詞中的單詞,但代碼會返回所有單詞:使用array_filter過濾數組
function stopwords($x){
return !preg_match("/^(.|a|car|red|the|this|at|in|or|of|is|for|to)$/",$x);
};
$filteredArray = array_filter($wordArray, "stopwords");
爲什麼?
$wordArray = ["hello","red","world","is"];
function stopwords($x){
return !preg_match("/^(.|a|car|red|the|this|at|in|or|of|is|for|to)$/",$x);
};
$filteredArray = array_filter($wordArray, "stopwords");
var_dump($filteredArray);
# results out:
array(2) {
[0] => string(5) "hello"
[2] => string(5) "world"
}
你認爲它會返回什麼?
您的輸入'$ wordArray'是字符串還是數組?
雖然這是我的錯,代碼也沒問題,但我接受此解決方案以提供示例 – erdomester
//應當是數組
$ wordArray =陣列( '他', '是', '去', '到', '牀');//應該返回布爾
功能禁用詞($ X)
{
回報的preg_match(「/ ^(|!一個|汽車|紅色|的|它在|或| |的|是|爲|至)$ /」,$ X);
}
//器陣列
$濾波器= array_filter($ wordArray, 「停止詞」);
//輸出
echo「< pre>」;
print_r($ filter);
//結果
陣列
(
[0] =>他
[2] =>去
[4] =>牀
)
試試這個..
$words = array('apple','boll','cat','dog','elephant','got');
$stopwords = array('cat','apple');
foreach($words as $k=>$v)
{
if(in_array($v,$stopwords)){
unset($words[$k]);
}
}
print_r($words);
[Working](http://codepad.viper-7.com/mxhGZE)對我很好。 – Rikesh
是的,它很酷。 –
確保數組中的單詞在每個單詞的開始或結尾處沒有任何空格字符,以便「紅色」確實是「紅色」而不是「紅色」:注意空白字符可以包括換行符或其他不可見字符,所以檢查實際長度 –