php中的重叠数组合并


merging overlapping array in php

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

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

对于第一个结果,它很容易修改:

$result[] = array($val1[0], $val2[1]);

您可以使用此函数

第一次输出:

function my_array_merge(&$array1, &$array2) {
    $result = array();
    foreach($array1 as $key => &$value) {
        $result[$key] = array_unique(array_merge($value, $array2[$key]));
    }
    return $result;
}
$arr = my_array_merge($array1, $array2);

第2次输出:

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