【发布时间】:2010-11-20 02:25:02
【问题描述】:
它们被简化如下,足以解决这个问题。本题基于this answer。
1
[a][b][]
和
2
[a][c]
其中两个数组都有一个公共子数组 [a]。
我想要这个
[a][c][b][]
我没有成功运行以下命令
array1[a] + array2[a]
【问题讨论】:
-
如果用php表示法显示前后数组可能会更清楚一些。
它们被简化如下,足以解决这个问题。本题基于this answer。
[a][b][]
和
[a][c]
其中两个数组都有一个公共子数组 [a]。
我想要这个
[a][c][b][]
我没有成功运行以下命令
array1[a] + array2[a]
【问题讨论】:
foreach($array1 as $a => $c)
{
$end_array[$c] = $array2[$a];
}
或
// For every [a]
foreach($array1 as $a => $c)
{
// Get the [b]
$b = $array2[$a];
// Add it to [a][c]
$end_array[$a][$c] = $b;
// Making it $end_array[$a][$c][$b] = array(....);
}
【讨论】:
$array1 = array_merge($array1, $array2);
【讨论】:
好的,我明白你在说什么。 (对于其他人,请参阅他发布的链接:http://dpaste.com/81464/)
var $output = array();
foreach ($array1 as $index => $a1) {
$output[$index] = $a1;
$output[$index]['title'] = $array2[$index]['title'];
}
【讨论】:
PHP 为您提供了解决这个常见问题的解决方案:
$a = array_merge($b, $c);
使用此解决方案,您将获取 $b 中的所有元素并将它们与 $c 合并。但如果您使用关联数组,您应该注意到您将用 $c 中的值替换 $b 中的值。
例如:
<?php
$a = array(
'ka' => 1,
'kb' => 1,
);
$b = array(
'kb' => 2,
'kc' => 2,
);
print_r(array_merge($a, $b));
?>
这段代码的结果是这样的:
Array
(
[ka] => 1
[kb] => 2
[kc] => 2
)
【讨论】:
for($i = 0; $i < sizeof($array); $i++)
{
$mergedarray[a][b] = $a[a][b];
$mergedarray[a][c] = $b[a][c];
}
据我所知,这是您想要的,这样两个子键都具有相同的根键。
【讨论】:
试试 array_combine()
【讨论】: