在单个数组上使用array_intersect_key

时间:2013-11-19 06:44:58

标签: php arrays

我有一个看起来像这样的数组:

Array
(
    [0] => Array
        (
            [Binding] => Video Game
            [Brand] => Sony
            [Color] => Crystal black
            [EAN] => 0151903136010
            [Edition] => WiFi
         )
    [1] => Array(
            [Binding] => Console
            [Brand] => Nintendo
            [Color] => blk n wht
            [EAN] => 0045496880866
            [Edition] => Deluxe Set
         )

我想要做的是只能提取公共密钥,价值无关紧要。此数组中的项目范围为2到6.

似乎array_intersect_key是我正在寻找的函数,但它需要2个或更多数组作为参数,所以我必须做类似的事情:

$item_count = count($items);
if($item_count == 2){
  $intersection = array_intersect_key($items[0], $items[1]);
}else if($item_count == 3){
  $intersection = array_intersect_key($items[0], $items[1], $items[2]);
}

这样做感觉非常乏味。任何想法,如果不使用ifs,更容易和更优雅的方式做到这一点?提前谢谢!

1 个答案:

答案 0 :(得分:2)

使用call_user_func_array()

//$array is your original array
$result = call_user_func_array('array_intersect_key', $array);