我有两个数组如下:
$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)
)
我怎么做这件事最好的建议是什么。
答案 0 :(得分:1)
我不知道哪种方法最好,但你可以用两个循环来做到这一点。例如:
$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]);
答案 1 :(得分: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;
}