如何合并2个数组,1是键,另一个是php中的值?

时间:2015-09-01 07:08:00

标签: php arrays associative-array

我必须使用数组:

$arr1 = [
    'name' => 'Person Name',
    'surname' => 'Person Surname',
];

$arr2 = [
    'name' => 'John',
    'surname' => 'Doe',
];

我想让arr1值成为arr2的数组键:

$arr = [
    'Person Name' => 'John',
    'Person Surname' => 'Doe',
];

另请注意,任何数组都可以是任何顺序,例如第一个数组名称然后是姓氏,第二个数组是姓氏然后是名字。 任何帮助,将不胜感激。感谢

我一直在寻找一种更简单的方法,而不必遍历数组并创建另一个。结果如下:

ksort($arr1);
ksort($arr2);
array_combine(array_values($arr1), array_values(array_intersect_key($arr2, $arr1)));

2 个答案:

答案 0 :(得分:3)

使用foreach

   $arr3 = [];
   foreach($arr1 as $key => $val){
     $arr3[$val] = $arr2[$key];
   }
   print_r($arr3);

答案 1 :(得分:1)

您可以轻松实现这一目标:

$new_array = array();
foreach((array) $arr1 as $index=>$key)
{
    $new_array[$key] = $arr2[$index];
}

其中$key是第一个数组的键,$arr2[$index]是第二个数组的值