2009-08-16 15 views
-2

Sie sind wie folgt vereinfacht, was für diese Frage ausreichend ist. Diese Frage basiert auf this answer.Wie können Sie zwei Arrays kombinieren?

[a][b][] 

und

[a][c] 

wo beide Anordnungen ein gemeinsamer Subarray [a] hat.

würde Ich mag diese haben

[a][c][b][] 

Ich habe den folgenden Befehl ausführen erfolglos

array1[a] + array2[a] 
+2

Es könnte etwas klarer sein, wenn Sie die vor und nach der Arrays in PHP-Notation zeigen. – rojoca

Antwort

1
foreach($array1 as $a => $c) 
{ 
    $end_array[$c] = $array2[$a]; 
} 

oder

// For every [a] 
foreach($array1 as $a => $c) 
{ 
    // Get the [b] 
    $b = $array2[$a]; 

    // Add it to [a][c] 
    $end_array[$a][$c] = $b; 

    // Making it $end_array[$a][$c][$b] = array(....); 
} 
1

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

+0

Das lässt die Spalte $ b aus, die ich nicht will, da sie die Titel von Fragen sind. –

0

PHP bietet Ihnen eine Lösung dieses gemeinsame Problem zu lösen:

$a = array_merge($b, $c); 

Mit dieser Lösung Sie alle Elemente innerhalb $ b zu nehmen gehst und kombiniere sie mit $ C. Aber wenn Sie assoziative Arrays verwenden, sollten Sie bemerken, dass Sie die Werte in $ b durch die in $ c ersetzen werden.

Zum Beispiel:

<?php 

$a = array(
    'ka' => 1, 
    'kb' => 1, 
); 

$b = array(
    'kb' => 2, 
    'kc' => 2, 
); 

print_r(array_merge($a, $b)); 


?> 

Das Ergebnis dieses Code wird wie etwas sein:

Array 
(
    [ka] => 1 
    [kb] => 2 
    [kc] => 2 
) 
+0

Dies funktioniert nicht. Es lässt die Titel aus. - ** Wie können Sie die Spalte bestimmen, die die Funktion zusammenführt? ** –

0
for($i = 0; $i < sizeof($array); $i++) 
{ 
    $mergedarray[a][b] = $a[a][b]; 
    $mergedarray[a][c] = $b[a][c]; 
} 

soweit ich das sagen kann, ist, was Sie wollen, dass die Art und Weise sowohl die Unterschlüssel haben denselben Grundschlüssel.

1

Ok, ich sehe, was du redest. (Für alle anderen finden Sie den Link er geschrieben: http://dpaste.com/81464/)

var $output = array(); 

foreach ($array1 as $index => $a1) { 
    $output[$index] = $a1; 
    $output[$index]['title'] = $array2[$index]['title']; 
} 
Verwandte Themen