使用两个数组创建键差异数组

时间:2016-07-19 11:23:34

标签: php arrays

我们如何找到使用两个数组的键deference数组 第一阵列:

$array_1 = array('300','200','500');

第二阵列:

$array_2 = array('500','300','200');
通过将$array_2应用于rsort

来生成

$array_1

然后我想通过比较$array_1的值和$array_2的键来生成一个键数组。输出将是

的数组
$key_array = ('1','2','0');

2 个答案:

答案 0 :(得分:1)

尝试:

$array_1 = array('300','200','500');
$array_2 = array('500','300','200');
$key_array = array();
foreach($array_1 as $arr1) {
   $key_array[] = array_search($arr1, $array_2); // get key in array_2 for value of array1
}
print_r($key_array);

输出:

Array
(
    [0] => 1
    [1] => 2
    [2] => 0
)

答案 1 :(得分:1)

array_flip()上使用$array_2将密钥转换为值,反之亦然。然后,您可以轻松找到原始密钥。

$flip_2 = array_flip($array_2);
$key_array = array_map(function($el) use ($flip_2) { return $flip_2[$el]; }, $array_1);

DEMO