提取数组2的键和值,其中值数组1 =键数组2

时间:2014-01-13 12:25:02

标签: php arrays

我没有找到预定义的php函数来实现它,没有一个? 我有2个阵列:

array1 =

Array
(
    [0] => n
    [1] => m
    [2] => l
)

array2 =

Array
(
    [j] => 2
    [k] => 2
    [l] => 3758096384
    [m] => 3
)

预期结果:array3 =

Array 
(
        [l] => 3758096384
        [m] => 3
)

感谢您的帮助, 杰斯

4 个答案:

答案 0 :(得分:8)

使用array_intersect_key()

$array1 = array
(
    0 => 'n',
    1 => 'm',
    2 => 'l'
);

$array2 = array
(
    'j' => 2,
    'k' => 2,
    'l' => 3758096384,
    'm' => 3
);

$result = array_intersect_key($array2, array_flip($array1));

答案 1 :(得分:3)

array_intersect_key()返回一个数组,其中包含array1的所有条目,这些条目具有所有参数中都存在的键。

$a = array('n','m','l');
$b = array('j' => 2, 'k' => 2, 'l' => 3758096384, 'm' => 3);
$c = array_intersect_key($b, array_flip($a));
print_r($c); // Array ( [l] => 3758096384 [m] => 3 ) 

答案 2 :(得分:0)

  $array3 = array();
    foreach ($array1 as $item){
     if (isset($array2[$item])){
        $array3[$item] = $array2[$item]
      }
    }

答案 3 :(得分:0)

这应该是工作

 <?php
   // ... your array1 and array2 setup here

   $array3=array();
   foreach($array1 as $key) {
    if(isset($array2[$key])) $array3[$key] = $array2[$key];
   }
   var_dump($array3);
 ?>