取消设置数组中的多个项目

时间:2012-11-19 08:52:53

标签: php

是否有PHP内置函数可以按键取消设置多个数组项?

这将是本机的等同于:

foreach($badElements as $k) {
    unset($allElements[$k]);
}

或者,甚至更好:

$keys = array_keys($badElements);
foreach($keys as $k) {
    unset($allElements[$k]);
}

2 个答案:

答案 0 :(得分:1)

以下内容未完全满足您的要求,因为非原位。但也许你可以复制数组:

$v = array("lol"=>"blub", "lal"=>"blab", "lulz"=>"gagh");
$k = array("lol", "lulz");

var_dump(array_diff_key($v, array_flip($k)));

[run it on codepad]

答案 1 :(得分:0)

您可以创建要删除和循环的键的数组,显式取消它们。 例子:

$removeKeys = array('name', 'email');

foreach($removeKeys as $key) {
   unset($badElements[$key]);
}

或者您可以将变量指向一个已移除键的新数组。

$badElements = array_diff_key($badElements, array_flip($removeKeys));

或将所有数组成员传递给unset()。

unset($badElements['name'],  $badElements['email'])