2009-10-13 11 views
11

2つの多次元配列を結合して新しい配列を作成する必要があります。
2つの配列は$_POST$_FILESから作成されており、それらを互いに関連付ける必要があります。PHP:2つの多次元配列を結合する

アレイ#1

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

アレイ#2

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

私は作品を使用している現在のコードが、唯一の最後の項目の

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

新しいアレイアレイ。
私はarray_merge関数をループすると仮定しています。これは、すべてのループで新しい配列を消去します。

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

これを修正するにはどうすればよいですか?

答えて

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

[]は、上書きするのではなく配列に追加します。組み込み配列関数のいずれか

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

おかげarray_replace_recursiveを、私は近くにありました。 D – ticallian

3

ちょうどループと配列表記

array_merge_recursive又は

http://php.net/manual/en/function.array-merge-recursive.php

+0

すみません。私は同じ問題を抱えています。私は、異なる長さの配列#1>配列#2を持っているときに質問したい。私は配列#2 'ImageEmpty.jpg'の値を与えたいと思います。前に感謝 – Stfvns

13

使用:使用

+1

ありがとう! PHP 5.3の場合、これは推奨される解決策になるはずです。 – Martijn