Php 给定两个数组,如何构建一个只包含一个数组元素的新数组,第二个数组中哪些键作为值存在?
我有以下两个阵列:Php 给定两个数组,如何构建一个只包含一个数组元素的新数组,第二个数组中哪些键作为值存在?,php,arrays,array-intersect,Php,Arrays,Array Intersect,我有以下两个阵列: // array1 Array ( [key1] => value1, [key2] => value2, [key3] => value3, [key4] => value4, [key5] => value5 ) // array2 Array ( [0] => key1, [1] => key3, [2] => key5 ) 我想构建一个新的数组,它只包含array1的元素,这些元素的键作为值存在于ar
// array1
Array (
[key1] => value1,
[key2] => value2,
[key3] => value3,
[key4] => value4,
[key5] => value5
)
// array2
Array (
[0] => key1,
[1] => key3,
[2] => key5
)
我想构建一个新的数组,它只包含array1
的元素,这些元素的键作为值存在于array2
中,以便具有以下内容:
// new array
Array (
[key1] => value1,
[key3] => value3,
[key5] => value5
)
我怎样才能做到这一点(可能使用数组相交之类的方法)?您可以使用
数组相交键和数组翻转。看这个
反转$array2
,使值变为键,反之亦然。然后,使用array\u intersect\u key
获取公共密钥
$reverseArray = array_flip($array2);
var_dump(array_intersect_key($array1, $reverseArray));
有关更多信息,请在此搜索。Php中的反向数组表示顺序相反。所以不是变量名的最佳选择。我明白了。反转和翻转是非常相似的。我认为反转和翻转是非常不同的。
$reverseArray = array_flip($array2);
var_dump(array_intersect_key($array1, $reverseArray));