有很多方法可以做到这一点。
你可以很容易地做你正在做的事情和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