我有两个数组,如下:
$arr1 = array("Key1"=>1, "Key2"=>2, "Key3"=>3);
我的第二个数组如下:
$arr2 = array("Key2", "Key3");
我想得到的是Key2和Key3匹配的值。我也希望这些值作为数组返回,所以我最终得到以下内容:
array(2,3)
感谢您的帮助。
答案 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);