length - php hash array
如果項目存在於“不允許的單詞”數組中,則從數組中刪除該項 (2)
我有一個數組:
Array
(
[0] => tom
[1] => and
[2] => jerry
)
我還有一個不允許的單詞數組:
Array
(
[0] => and
[1] => foo
[2] => bar
)
我需要做的是刪除第一個數組中也出現在第二個數組中的任何項,例如,在這個實例中,需要刪除鍵1,因為'和'在不允許的單詞數組中。
現在我有了這個代碼,它在不允許的單詞上做了一個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。
非常感謝,本
php:中array_dif的使用如果第二個數組中存在值,它將從第一個數組中刪除值。
$foo = array(1, 5, 9, 14, 23, 31, 45);
$bar = array(14, 31, 36);
$data = array_diff($foo,$bar);
print_r($data);
你想要array_diff
。
array_diff
返回一個數組,其中包含array1
中任何其他任何數組中都不存在的條目。
所以你想要這樣的東西:
$good = array_diff($arr, $disallowed_words);