一尘不染

如果项目存在于“不允许的单词”数组中,请从数组中删除

php

我有一个数组:

Array
(
    [0] => tom
    [1] => and
    [2] => jerry
)

而且我还有一个不允许的单词数组:

Array
(
    [0] => and
    [1] => foo
    [2] => bar
)

我需要做的是删除第一个数组中也出现在第二个数组中的所有项目,例如,在这种情况下,键1将需要删除,因为“ and”在不允许的单词数组中。

现在,我现在有了这段代码,该代码对禁止的单词进行了foreach,然后使用array_search查找任何匹配项:

$arr=array('tom','and','jerry');
$disallowed_words=array('and','or','if');
foreach($disallowed_words as $key => $value) {
    $arr_key=array_search($value,$array);
    if($arr_key!='') {
        unset($search_terms[$arr_key]);
    }
}

现在,我知道这段代码很烂,我想知道的是,是否存在一种更有效的方法来从另一个数组中存在的数组中删除和项,尤其是如果它否定了使用foreach的话。

非常感谢,本


阅读 227

收藏
2020-05-29

共1个答案

一尘不染

你要array_diff

array_diff返回一个数组,其中包含所有array1其他数组中不存在的所有条目。

所以你想要像这样的东西:

$good = array_diff($arr, $disallowed_words);
2020-05-29