【发布时间】:2017-04-13 08:23:19
【问题描述】:
有没有办法,用下面的两个数组得到另一个数组,它是这两个数组的组合?
数组 1:
Array
(
[0] => Array
(
[a_id] => 9
[name] => Mario Lopez
)
[1] => Array
(
[a_id] => 8
[name] => Lisa Turtle
)
)
数组 2:
Array
(
[0] => Array
(
[b_id] => 1
[name] => AC Slater
)
[1] => Array
(
[b_id] => 2
[name] => Lisa Turtle
)
[2] => Array
(
[b_id] => 3
[name] => Kelly Kapowski
)
)
我想得到什么:
Array
(
[0] => Array
(
[b_id] => 1
[name] => AC Slater
)
[1] => Array
(
[a_id] => 8
[b_id] => 2
[name] => Lisa Turtle
)
[2] => Array
(
[b_id] => 3
[name] => Kelly Kapowski
)
[3] => Array
(
[a_id] => 9
[name] => Mario Lopez
)
)
第三个数组合并了键名匹配的前两个数组 我还没有找到builtin function 并尝试了这个解决方案但没有成功:combine 2 associative arrays where values match。
谢谢,
编辑:抱歉,我忘记添加 Mario Lopez。 我的尝试是:
function array_extend($a, $b) {
foreach($b as $k=>$v) {
if( is_array($v) ) {
if( !isset($a[$k]) OR isset($v[0])) {
$a[$k] = $v;
} else {
$a[$k] = array_extend($a[$k], $v);
}
} else {
$a[$k] = $v;
}
}
return $a;
}
【问题讨论】:
-
“尝试了这个解决方案但没有成功”是什么意思?请展示您的尝试并解释它有什么问题。谢谢。
-
Mario Lopez会变成哪里?