使用数组 PHP 从另一个数组中提取数组


Extract Array from another array using an array PHP

我有两个这样的数组

 $arr1 = Array('fn', 'ln', 'em');
 $arr2 = Array('fn'=>'xyz',  'ano' => 'abc', 'ln'=>'122', 'em' => 'a@b.com', 'db'=>'xy');

我想从 arr2 创建一个数组,其中包含 $arr 1 中的所有元素。所以结果应该是这样的。

 $result = Array( 'fn'=>'xyz', 'ln'=>'122', 'em'='a@b.com');

不想循环。

知道吗?

参数的顺序在这里很重要

 print_r(array_intersect_key($arr2, array_flip($arr1)));
您可以使用

array_map

// PHP 5.3+ only
$result = array_combine($arr1, array_map(function($a) use($arr2){
    return $arr2[$a];
}, $arr1));

演示:http://codepad.viper-7.com/Y1aYcf

如果你有 PHP <5.3,你可以用 array_intersect_keyarray_flip 做一些技巧。

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

演示:http://codepad.org/MuydURQT

你只需要循环,就像创建一个新数组一样,或者检查数学函数中的一些数组集。 我想,也许,昆虫可能会起作用。