2009-10-13 26 views
11

Necesito combinar 2 matrices multidimensionales para crear una nueva matriz.
Las 2 matrices se crean desde $_POST y $_FILES y necesito que se asocien entre ellas.PHP: Combinar matrices multidimensionales

Matriz # 1

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

Matriz # 2

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

nueva matriz

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" 
     ) 
) 

El código actual que estoy usando obras, pero sólo para el último elemento de la formación.
Supongo que al hacer un bucle en la función array_merge, limpia mi nueva matriz en cada ciclo.

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

¿Cómo puedo corregir esto?

Respuesta

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

[] se agregará a la matriz en lugar de sobreescribir.

+0

Gracias, yo estaba tan cerca: D – ticallian

3

Utilizando sólo los bucles y la notación de matriz:

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

discúlpeme. Tengo el mismo problema. Quiero preguntar, cuando tenga diferente longitud array # 1> array # 2. Quiero dar el valor para la matriz # 2 'ImageEmpty.jpg'. gracias antes de – Stfvns

Cuestiones relacionadas