php中重叠数组的合并

php中重叠数组的合并,php,arrays,Php,Arrays,我有两个数组,如下所示: $array1 = array( [0]=>array([0]=>a_a [1]=>aa) [1]=>array([0]=>b_b [1]=>bb) [3]=>array([0]=>c_c [1]=>cc) ) $array2 = array( [0]=>

我有两个数组,如下所示:

$array1 = array(
               [0]=>array([0]=>a_a [1]=>aa)
               [1]=>array([0]=>b_b [1]=>bb) 
               [3]=>array([0]=>c_c [1]=>cc) 
               )


$array2 = array(
               [0]=>array([0]=>aa [1]=>AA)
               [1]=>array([0]=>bb [1]=>BB) 
               [3]=>array([0]=>cc [1]=>CC) 
               )
$result = array(
               [0]=>array([0]=>a_a [1]=>AA)
               [1]=>array([0]=>b_b [1]=>BB) 
               [3]=>array([0]=>c_c [1]=>CC) 
               )
$result = array(
               [0]=>array([0]=>a_a [1]=>aa [2]=>AA)
               [1]=>array([0]=>b_b [1]=>bb [2]=>AA) 
               [3]=>array([0]=>c_c [1]=>cc [2]=>AA) 
               )
我希望合并或重叠到以下输出:

$array1 = array(
               [0]=>array([0]=>a_a [1]=>aa)
               [1]=>array([0]=>b_b [1]=>bb) 
               [3]=>array([0]=>c_c [1]=>cc) 
               )


$array2 = array(
               [0]=>array([0]=>aa [1]=>AA)
               [1]=>array([0]=>bb [1]=>BB) 
               [3]=>array([0]=>cc [1]=>CC) 
               )
$result = array(
               [0]=>array([0]=>a_a [1]=>AA)
               [1]=>array([0]=>b_b [1]=>BB) 
               [3]=>array([0]=>c_c [1]=>CC) 
               )
$result = array(
               [0]=>array([0]=>a_a [1]=>aa [2]=>AA)
               [1]=>array([0]=>b_b [1]=>bb [2]=>AA) 
               [3]=>array([0]=>c_c [1]=>cc [2]=>AA) 
               )
输出如下所示:

$array1 = array(
               [0]=>array([0]=>a_a [1]=>aa)
               [1]=>array([0]=>b_b [1]=>bb) 
               [3]=>array([0]=>c_c [1]=>cc) 
               )


$array2 = array(
               [0]=>array([0]=>aa [1]=>AA)
               [1]=>array([0]=>bb [1]=>BB) 
               [3]=>array([0]=>cc [1]=>CC) 
               )
$result = array(
               [0]=>array([0]=>a_a [1]=>AA)
               [1]=>array([0]=>b_b [1]=>BB) 
               [3]=>array([0]=>c_c [1]=>CC) 
               )
$result = array(
               [0]=>array([0]=>a_a [1]=>aa [2]=>AA)
               [1]=>array([0]=>b_b [1]=>bb [2]=>AA) 
               [3]=>array([0]=>c_c [1]=>cc [2]=>AA) 
               )

我是如何做这件事的最好的方法是什么;我不知道哪种方法最好,但你可以用两个循环来实现。例如:

$result = array();
foreach($array1 as $val1) {
    foreach($array2 as $val2) {
        if($val1[1] == $val2[0]) {
            $result[] = array($val1[0], $val1[1], $val2[1]);
        }
    }
}

echo '<pre>';
print_r($result);

你可以使用这个功能

第一输出:

function my_array_merge(&$array1, &$array2) {
    $result = array();
    foreach($array1 as $key => &$value) {
        $result[$key] = array_merge(array_diff($value, $array2[$key]), array_diff($array2[$key],$value));
    }
    return $result;
}
2st输出:


@代码狂热哦,好吧,我想你也说过了,我只是更喜欢第二个,不管怎样,检查一下修订