Я пытаюсь использовать array_combine для объединения двух многомерных массивов, но как-то не правильно делаю.
Вот массив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, которая не работает:
<code>$array1 = ($arr1);
$array2 = ($arr2);
$result = array_combine($arr1, $arr2);
echo '<pre>';
print_r($result);
echo '
';
Что я делаю не так? Вот результат, который я ищу:
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
)
)
)
- ДОПОЛНИТЕЛЬНОЕ РЕДАКТИРОВАНИЕ -
Вот способ, которым я пытался реализовать одно из предложенных ниже предложений, однако это не работает для меня. Что не так?:
<code>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 '
';