Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 给定两个数组,如何构建一个只包含一个数组元素的新数组,第二个数组中哪些键作为值存在?_Php_Arrays_Array Intersect - Fatal编程技术网

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));