从键匹配的第二个数组中获取值

时间:2016-02-27 16:09:58

标签: php

我有两个数组,如下:

$arr1 = array("Key1"=>1, "Key2"=>2, "Key3"=>3);

我的第二个数组如下:

$arr2 = array("Key2", "Key3");

我想得到的是Key2和Key3匹配的值。我也希望这些值作为数组返回,所以我最终得到以下内容:

array(2,3)

感谢您的帮助。

2 个答案:

答案 0 :(得分:4)

只需使用3个三个数组函数即可实现此目的。

$arr1 = array("Key1"=>1, "Key2"=>2, "Key3"=>3);
$arr2 = array("Key2", "Key3");

$arr3 = array_values(array_intersect_key($arr1, array_flip($arr2)));
print_r($arr3);

输出:

  

数组([0] => 2 [1] => 3)

答案 1 :(得分:1)

$arr1 = array("Key1"=>1, "Key2"=>2, "Key3"=>3);
$arr2 = array("Key2", "Key3");

$result = array();

foreach($arr1 as $key => $value) {
    if(in_array($key, $arr2)) {
        array_push($result, $arr1[$key]);
    }
}

var_dump($result);

或如评论中所述:

$arr1 = array("Key1"=>1, "Key2"=>2, "Key3"=>3);
$arr2 = array("Key2", "Key3");

$result = array_intersect_key($arr1, array_flip($arr2));

var_dump($result);