2010-05-02 75 views
6

这晚,我知道这是一个很简单的问题,但现在我没有一个想法,截止日期是近..从关联数组仅获得该元素的键指定

我有两个数组:

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

函数的名字是从第二个数组中获得关联数组的一部分的函数的名字是什么?

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

谢谢!

回答

20

试试这个:

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

就是这样!谢谢。对我感到羞耻。 ;) – hsz 2010-05-02 22:46:40

+0

哇!不知何故,我在今天之前错过了这个功能。凉! http://php.net/array_intersect_key – artlung 2010-05-02 22:48:59

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; 
} 
0

我很好奇,看看是否有一个内置在做这个。这是我将如何去做的。

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