我有一个数组:
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进行否定。
2条答案
按热度按时间bq8i3lrv1#
你想要
array_diff
。array_diff
返回一个数组,其中包含array1
中不存在于任何其他数组中的所有条目。所以你想要这样的东西:
lb3vh1jj2#
array_dif在中的用途php://It如果第二个数组中存在值,则从第一个数组中删除值。