2009-10-13 20 views
11

Ich muss 2 multidimensionale Arrays zusammenführen, um ein neues Array zu erstellen.
Die 2 Arrays werden erstellt von $_POST und $_FILES und ich brauche sie miteinander verknüpft werden.PHP: Merge 2 Multidimensional Arrays

Array # 1

Array 
(
    [0] => Array 
     (
      [0] => 123 
      [1] => "Title #1" 
      [2] => "Name #1" 
     ) 
    [1] => Array 
     (
      [0] => 124 
      [1] => "Title #2" 
      [2] => "Name #2" 
     ) 
) 

Array # 2

Array 
(
    [name] => Array 
     (
      [0] => Image001.jpg 
      [1] => Image002.jpg 
     ) 
) 

New Array

Array 
(
    [0] => Array 
     (
      [0] => 123 
      [1] => "Title #1" 
      [2] => "Name #1" 
      [3] => "Image001.jpg" 
     ) 
    [1] => Array 
     (
      [0] => 124 
      [1] => "Title #2" 
      [2] => "Name #2" 
      [3] => "Image002.jpg" 
     ) 
) 

Der aktuelle Code i Werke sind mit, aber nur für das letzte Element in der Array.
Ich nehme an, durch Schleifen der array_merge Funktion wischt es mein neues Array jede Schleife.

$i=0; 
$NewArray = array(); 
foreach($OriginalArray as $value) { 
    $NewArray = array_merge($value,array($_FILES['Upload']['name'][$i])); 
    $i++; 
} 

Wie kann ich das korrigieren?

Antwort

11
$i=0; 
$NewArray = array(); 
foreach($OriginalArray as $value) { 
    $NewArray[] = array_merge($value,array($_FILES['Upload']['name'][$i])); 
    $i++; 
} 

Die [] wird es an das Array anhängen, anstatt zu überschreiben.

+0

Danke, ich war so nah: D – ticallian

3

nur mit Schleifen und Array-Notation:

$newArray = array(); 
$i=0; 
foreach($arary1 as $value){ 
    $newArray[$i] = $value; 
    $newArray[$i][] = $array2["name"][$i]; 
    $i++; 
} 
+0

Entschuldigung. Ich habe das gleiche Problem. Ich möchte fragen, Wann haben unterschiedliche Länge Array # 1> Array # 2. Ich möchte den Wert für Array # 2 'ImageEmpty.jpg' geben. danke vor – Stfvns