从基于另一个数组的数组中删除元素

时间:2011-08-10 15:42:48

标签: php arrays

$arr1 = array(
  'a' => 123,
  'b' => 123,
  'c' => 123,
  'd' => 123,
);

$arr2 = ('a', 'b', 'c', 'd', 'e');

如何从$ arr2中删除$ arr1中不存在的元素?

例如e在$ arr1中不存在为键,因此应将其删除

3 个答案:

答案 0 :(得分:1)

$arr2 = array_intersect($arr2, array_keys($arr1))

它计算两组的交集 - $arr2值和$arr1

答案 1 :(得分:0)

试试这个:

foreach ( $arr2 as $key => $value ) {
    if ( !array_key_exists( $value, $arr1 ) ) {
        unset( $arr2[$key] );
    }
}

答案 2 :(得分:0)

为什么不使用简单方法并使用array_keys?这样可以避免必须通过一次获取所有键来执行每个键的操作。

$arr2 = array_keys($arr1);