I am trying to use array_combine to combine two multidimensional arrays, but somehow not doing it right.
Here is array1:
Array(
[Nov 18, 2011] => Array(
[C] => 107705.5792
[I] => 44561.52
)
[Nov 22, 2011] => Array(
[C] => -8992.8352
)
)
and here is array2:
Array(
[Nov 18, 2011] => Array(
[C] => 3
[I] => 1
)
[Nov 22, 2011] => Array(
[C] => 2
)
)
Here is my attempt at array_combine that does not work:
$array1 = ($arr1);
$array2 = ($arr2);
$result = array_combine($arr1, $arr2);
echo '<pre>';
print_r($result);
echo '</pre>';
What am I doing wrong? This is the result I'm looking for:
Array(
[Nov 18, 2011] => Array(
[3] => 107705.5792
[1] => 44561.52
)
[Nov 22, 2011] => Array(
[2] => -8992.8352
)
)
Thank you for your help.
I found that if I use array_merge_recursive instead, this is my result that I get. Not what I was looking for, but close:
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
)
)
)
This is how I tried to implement one of the suggestions below, however this does not work for me. What's wrong?:
function cust_array_merge(array &$array1, array $array2){
foreach ($array1 as $key => $val) {
if (array_key_exists($key, $array2)) {
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>';