$arr1 = array(
'a' => 123,
'b' => 123,
'c' => 123,
'd' => 123,
);
$arr2 = ('a', 'b', 'c', 'd', 'e');
如何从$ arr2中删除不存在作为$ arr1中的键的元素?从基于另一个阵列的阵列中删除元素
例如e
不存在为$ ARR1密钥,因此它应该被删除
$arr1 = array(
'a' => 123,
'b' => 123,
'c' => 123,
'd' => 123,
);
$arr2 = ('a', 'b', 'c', 'd', 'e');
如何从$ arr2中删除不存在作为$ arr1中的键的元素?从基于另一个阵列的阵列中删除元素
例如e
不存在为$ ARR1密钥,因此它应该被删除
$arr2 = array_intersect($arr2, array_keys($arr1))
它计算的两套路口 - $arr2
值和$arr1
键
试试这个:
foreach ($arr2 as $key => $value) {
if (!array_key_exists($value, $arr1)) {
unset($arr2[$key]);
}
}
为什么不使用简单的方法并使用array_keys
?这避免了必须通过一次获取所有键来执行每个键的操作。
$arr2 = array_keys($arr1);
如果'$ arr1'包含不在'$ arr2'中的元素? –
@Felix Kling:那是个问题。但在OP发布的例子中,'array_keys'可以正常工作。 –