仅从关联数组中获取指定了哪些键的元素

时间:2010-05-02 22:42:35

标签: php arrays

现在已经很晚了,我知道这是一个非常简单的问题但是现在我没有想法,截止日期已经临近......

我有两个阵列:

$array1 = array(
  'a' => 'asdasd',
  'b' => 'gtrgrtg',
  'c' => 'fwefwefw',
  'd' => 'trhrtgr',
);
$array2 = array(
  'b', 'c'
);

通过第二个数组的键获取关联数组的一部分的函数名称是什么?

$result = array(
  'b' => 'gtrgrtg',
  'c' => 'fwefwefw',
);

谢谢!

3 个答案:

答案 0 :(得分:20)

试试这个:

array_intersect_key($array1, array_flip($array2)).

答案 1 :(得分:0)

我认为没有这样的功能,所以我将实现一个:

function array_filter_keys($array, $keys) {
  $newarray = array();
  foreach ($keys as $key) {
    if (array_key_exists($key, $array)) $newarray[$key] = $array[$key];
  }
  return $newarray;
}

答案 2 :(得分:0)

我很想知道是否有内置功能。我就是这样做的。

$result = array();
foreach ($array2 as $key) {
  if (array_key_exists($key, $array1) {
    $result[$key] = $array1[$key];
  }
}