我想使用array_combine结合两个多维数组,但不知怎的,没有正确地做。PHP结合了两个多维数组
这里是阵列1:
Array(
[Nov 18, 2011] => Array(
[C] => 107705.5792
[I] => 44561.52
)
[Nov 22, 2011] => Array(
[C] => -8992.8352
)
)
这里是数组2:
Array(
[Nov 18, 2011] => Array(
[C] => 3
[I] => 1
)
[Nov 22, 2011] => Array(
[C] => 2
)
)
这是我在array_combine的尝试,这是行不通的:
$array1 = ($arr1);
$array2 = ($arr2);
$result = array_combine($arr1, $arr2);
echo '<pre>';
print_r($result);
echo '</pre>';
我在做什么错误?这是我正在寻找的结果:
Array(
[Nov 18, 2011] => Array(
[3] => 107705.5792
[1] => 44561.52
)
[Nov 22, 2011] => Array(
[2] => -8992.8352
)
)
感谢您的帮助。
- 编辑 -
我发现,如果我改用array_merge_recursive,这是我的,我得到的结果。不是我一直在寻找,但接近:
Array(
[Nov 18, 2011] => Array(
[C] => Array(
[0] => 3
[1] => 107705.5792
)
[I] => Array(
[0] => 1
[1] => 44561.52
)
)
[Nov 22, 2011] => Array(
[C] => Array(
[0] => 2
[1] => -8992.8352
)
)
)
- 进一步编辑 -
这里是我曾经试图实施以下建议之一的方式,然而这不工作我。什么是错的?:
function cust_array_merge(array &$array1, array $array2){
// loop through main array
foreach ($array1 as $key => $val) {
// check if $array2 has the same index
if (array_key_exists($key, $array2)) {
// reset $array1's indexes to $array2's values
foreach ($array2[$key] as $subKey => $subVal) {
if (array_key_exists($subKey, $array1[$key])) {
$tempVal = $array1[$key][$subKey];
unset($array1[$key][$subKey]);
$array1[$key][$subVal] = $tempVal;}}}}}
$merged = cust_array_merge($arr_cats_per_bill_date, $arr_cvat);
echo '<pre>';
print_r($merged);
echo '</pre>';
你想保留关键引用或你不关心,如果它变成0 1 2?数组中不能有两个“C”或“I”键或任何其他值。 – phpmeh
为什么字面上** ALL **的问题具有完全相同的内容和数组?我们是在做你的功课还是为了学校?这实际上就是我在上周或第二周看到的第三个或第四个问题,与前一个问题几乎完全相同。 –
@phpmeh,不,我不想保留关键参考。 – DanielAttard