2012-06-21 24 views
1

美好的一天!我在合併/合併/連接數組時遇到錯誤。如何合併數組數組中的assiocative數組?

比如我有數組,

$array1 [] = array(
'var1' => $var1, 
'var2' => $var2, 
'var3' => $var3, 
); 
$array2 [] = array(
'var4' => $var4, 
'var5' => $var5, 
'var6' => $var6, 
); 

這些陣列有他們內部的多個記錄,但有相同數量的記錄。 當我的var_dump他們的結構是這樣的:

//array1 
array(3){ 
    [0]=>array(3){ 
     ["var1"]=> string (4) "var1" 
     ["var2"]=> string (4) "var2" 
     ["var3"]=> string (4) "var3" 
    } 
    [1]=>array(3){ 
     ["var1"]=> string (4) "var1" 
     ["var2"]=> string (4) "var2" 
     ["var3"]=> string (4) "var3" 
    } 
    [2]=>array(3){ 
     ["var1"]=> string (4) "var1" 
     ["var2"]=> string (4) "var2" 
     ["var3"]=> string (4) "var3" 
    } 
} 
//array2 
array(3){ 
    [0]=>array(3){ 
     ["var4"]=> string (4) "var4" 
     ["var5"]=> string (4) "var5" 
     ["var6"]=> string (4) "var6" 
    } 
    [1]=>array(3){ 
     ["var4"]=> string (4) "var4" 
     ["var5"]=> string (4) "var5" 
     ["var6"]=> string (4) "var6" 
    } 
    [2]=>array(3){ 
     ["var4"]=> string (4) "var4" 
     ["var5"]=> string (4) "var5" 
     ["var6"]=> string (4) "var6" 
    } 
} 

我想補充兩個陣列

$array_combined [] = array(
'var1' => $var1, 
'var2' => $var2, 
'var3' => $var3, 
'var4' => $var4, 
'var5' => $var5, 
'var6' => $var6, 
); 

我認爲結構應該是這樣的,當的var_dump(ED):

//array_combined 
array(3){ 
    [0]=>array(6){ 
     ["var1"]=> string (4) "var1" 
     ["var2"]=> string (4) "var2" 
     ["var3"]=> string (4) "var3" 
     ["var4"]=> string (4) "var4" 
     ["var5"]=> string (4) "var5" 
     ["var6"]=> string (4) "var6" 

    } 
    [1]=>array(3){ 
     ["var1"]=> string (4) "var1" 
     ["var2"]=> string (4) "var2" 
     ["var3"]=> string (4) "var3" 
     ["var4"]=> string (4) "var4" 
     ["var5"]=> string (4) "var5" 
     ["var6"]=> string (4) "var6" 

    } 
    [2]=>array(3){ 
     ["var1"]=> string (4) "var1" 
     ["var2"]=> string (4) "var2" 
     ["var3"]=> string (4) "var3" 
     ["var4"]=> string (4) "var4" 
     ["var5"]=> string (4) "var5" 
     ["var6"]=> string (4) "var6" 
    } 
} 

我試過了:

$array_combine = array_combine($array1, $array2); 
$array_merge = array_merge($array1, $array2); 
$array_merge_recursive = array_merge_recursive($array1, $array2); 

但我不斷收到此錯誤:

Notice: Undefined index: cmax in D:\xampp\htdocs\vra\GetVM - Copy.php on line 365

,我貼有剛相似,我真正的代碼。
行365包含回聲($ record ['var4'])。
我正在做這樣的事情來輸出組合/合併數組。

$array_merge = merge_array($array1, $array2)
foreach ($array_merge as $record) {
echo ($record['var1']);
echo ($record['var2']);
echo ($record['var3']);
echo ($record['var4']);//this is were the error occurs
echo ($record['var5']);//same error here
echo ($record['var6']);//same error here
}


使用array_combine()試過了,array_merge_recursive和$ combined_array = $陣列1 + $數組2

+0

什麼是365線? – deceze

+0

其實我在那裏發佈的代碼與我的真實代碼很相似。
行365包含回聲($ record ['var4'])。
我正在做這樣的事情來輸出組合/合併數組。
$ array_merge = merge_array($ array1,$ array2)
foreach($ array_merge as $ record){
echo($ record ['var1']);
echo($ record ['var2']);
echo($ record ['var3']); echo($ record ['var4']); //這是錯誤發生
echo($ record ['var5']);
echo($ record ['var6']);
} – taptipblard

回答

0

我想說的問題是從您使用多維數組所產生,並試圖將它們合併爲一維數組。取而代之的

$array_merge = array_merge($array1, $array2); 

嘗試

$array_merge[0] = array_merge($array1[0], $array2[0]); 
$array_merge[1] = array_merge($array1[1], $array2[1]); 
$array_merge[2] = array_merge($array1[2], $array2[2]); 
[ ... ] 

如果要嚴格地將它們結合起來,並從第一與第二從不overright值,使用

$array_merge = $array1 + $array2; 

一些額外的注意事項陣列合併可以在php.net

+0

謝謝!有效! – taptipblard

+0

不客氣:)請將此標記爲正確答案,如果是這樣的話。謝謝! – DACrosby