2016-02-27 33 views
0

我有兩個數組,以下值:獲取從第二組,其中密鑰匹配

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

我的第二個陣列如下:

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

我想獲得的是值,其中Key2和Key3匹配。我也想,所以我結束了以下這些值來作爲數組返回:

array(2,3) 

感謝您的幫助。

+1

參見:http://stackoverflow.com/q/ 11644267/3933332 +看看'array_values()'用數字鍵重新編排數組 – Rizier123

+0

http://stackoverflow.com/questions/11644267/array-intersect-on-key-in-array – felipsmartins

回答

4

只是使用3×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
$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);