我想使用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