如何基于键值对将两个数组合并为一个数组


how to merge two arrays in one array based on key and values pair

我有两个数组,如下例所示。。

 $arr1 = array("0" => "1");
 $arr2 = array("2" => "3");

我想通过合并一个数组中的所有键和另一个数组内的所有值来创建两个不同的数组。

预期输出。。

$arr3 = array("0" => "2");
$arr4 = array("1" => "3");

下面是给出的例子。将array_combinearray_keys用于$arr3,将reset用于$arr4-

//extract the keys and combine them
$arr3 = array_combine(array_keys($arr1), array_keys($arr2));
//extract the first value and combine them
$arr4 = array_combine(array(reset($arr1)), array(reset($arr2)));

您可以这样做,使用array_keys和array_vals:

<?
    $arr1 = array("0" => "1");
    $arr2 = array("2" => "3");
    $a1_keys = array_keys($arr1);
    $a1_vals = array_values($arr1);
    $a2_keys = array_keys($arr2);
    $a2_vals = array_values($arr2);
    $keys_merge = array();
    $vals_merge = array();
    for ($i = 0; $i < count($arr1); $i++) {
        $keys_merge[$a1_keys[$i]] = $a2_keys[$i];
        $vals_merge[$a1_vals[$i]] = $a2_vals[$i];
    }
    print_r($keys_merge);
    print_r($vals_merge);

上面的脚本假设您已经正确格式化了数组。

 $arr1 = array("0","1");
 $arr2 = array("2","3");
 foreach($arr1 as $key => $value){
   $arr3[$value] = $arr2[$key];
 }

这就是你需要的。注意:1(您对$arr1和$arr2的描述不正确2( 当数组长度不相等时,它需要更多的逻辑。

也许您可以使用array_combine((

<?php
$a = array('green', 'red', 'yellow');
$b = array('avocado', 'apple', 'banana');
$c = array_combine($a, $b);
print_r($c);
?>