在两个关联数组的关键字在PHP中的数组合并?
问题描述:
如何将这两个数组合并在一起?在两个关联数组的关键字在PHP中的数组合并?
Array
(
[0] => Array
(
[id] => 5
[cnt] => 14
)
[1] => Array
(
[id] => 8
[cnt] => 2
)
)
Array
(
[0] => Array
(
[id] => 8
[binding] => hardcover
)
[1] => Array
(
[id] => 5
[binding] => softcover
)
)
预期的结果是:
Array
(
[0] => Array
(
[id] => 5
[binding] => softcover
[cnt] => 14
)
[1] => Array
(
[id] => 8
[binding] => hardcover
[cnt] => 2
)
)
这两个数组的合并应该发生在[ID]值,而不是对任何类型的数组。我怎样才能以一种快速的方式与PHP做到这一点?
答
$output = array();
$arrayAB = array_merge($arrayA, $arrayB);
foreach ($arrayAB as $value) {
$id = $value['id'];
if (!isset($output[$id])) {
$output[$id] = array();
}
$output[$id] = array_merge($output[$id], $value);
}
var_dump($output);
可选,如果你想复位输出的钥匙,只是做:
$output = array_values($output);
大 - 运行完美!谢谢! – Stefan 2012-02-02 13:21:24