有很多方法可以做到這一點。
你可以很容易地做你正在做的事情和unset
你不需要的鑰匙。
foreach($f as $key => $line) {
foreach($b as $bulk) {
if (strpos($line, $bulk) !== false) {
unset($f[$key]);
}
}
}
您還可以創建一個功能通過與array_search()
尋找一個值按引用傳遞和修改使用unset()
數組:
function bulkRemove(&$f,$b)
{
foreach($b as $line) {
$search = array_search($line,$f);
if($search !== false)
unset($f[$search]);
}
}
bulkRemove($f,$b);
您還可以使用封閉與array_map()
並取出空的, array_filter()
$array = array_filter(array_map(function($v) use ($b) {
if(!in_array($v,$b))
return $v;
},$f));
編輯:由於您使用的選項與array_search()
,這樣的:
$f = array('line1','line2','line3','line4','line5');
$b = array('line2','line4');
function bulkRemove(&$f,$b)
{
foreach($b as $line) {
$search = array_search($line,$f);
if($search !== false)
unset($f[$search]);
}
}
bulkRemove($f,$b);
echo count($f);
print_r($f);
爲您提供:
3
Array
(
[0] => line1
[2] => line3
[4] => line5
)
嘗試新鮮事物,因爲我們不只是寫代碼,你 –
更新.... ..... – dexter
在你的例子中,你在第二個'for'循環中的'$ bulk'後面缺少''',可能是複製/粘貼錯誤...如果不是......你有一個錯字我解決了。 – Rasclatt