2017-08-16 28 views
-2

多くの異なるアック配列を1つの配列にマージするが、assoc配列の形にしたい。私はこの1つの連想配列内に2つの連想配列をマージする

Array ([0] => abc [1] => def [2] => ghi) 
Array ([0] => jkl [1] => mno [2] => pqr) 
. 
. 
. 

などの異なるアレイを持っていると、配列が

array 
    0 => 
    array 
     0 => string 'abc' 
     1 => string 'def' 
     2 => string 'ghi' 
    1 => 
    array 
     0 => string 'jkl' 
     1 => string 'mno' 
     2 => string 'pqr' 
. 
. 
.` 
. 

ように私は、CSVファイルからこれらの配列を取得していますようにしたいように。助けてください。ありがとう

+1

PHPには、マニュアルに記載されている多くの配列関数があります...それらを見てきましたか?私はあなたがこれを行うネイティブ関数があると思うでしょう。 – Rasclatt

+0

はい、私はそれらの多くを使ってみましたが、それらのすべてが単純に配列をマージしますが、私が望むようにはなりません。私はもう一度チェックをしますが、私は誰も働いていないと確信しています。 –

+0

'array_merge_recursive'を試しましたか? –

答えて

3

私が正しく理解していれば、配列をマージしたくない...多次元配列、つまり配列の配列を作成したいだけです。 See the difference here。 CSVファイルからの初期の配列を作成しているが、私は完全を期すため、ここでそれらを作成します

$array1 = array ("0" => "abc", "1" => "def", "2" => "ghi"); 
$array2 = array ("0" => "jkl", "1" => "mno", "2" => "pqr"); 

その後、すべてを行う必要がある応じて、値としてこれらの配列を持つ配列を作成することですあなたのコードの他の部分とどのように動作するか、例えば

$multiarray = array(); 
$multiarray["0"] = $array1; 
$multiarray["1"] = $array2; 

または

$multiarray = array ("0" => $array1, "1" => $array2); 

はあなたprint_r ($multiarray);場合、それはあなたの質問の例のようになります。

ところで、あなたが与えた例は連想配列ではありませんが、実際に必要としているかのように扱いました。 配列が標準インデックス配列の場合は、キーを指定する必要はありません。

$array1 = new array("abc", "def", "ghi"); 
etc 
$multiarray[] = $array1; 
$multiarray[] = $array2; 
1

私はそれを見たが、いくつかの状況で役に立つかもしれないとLEST自体にタスク用に最適化された別の視点を提供します。

$array = array('abc', 'def', 'ghi'); 
$array2 = array('jkl', 'mno', 'pqr'); 

function gather(... $array){return $array;} 

my_print_r(gather($array, $array2)); 

その関数は、その例では、配列と呼ばれる配列内のエントリとしての機能に送られるどんな引数ネイティブ収集スプラットオペレータを使用します。私たちは、その関数内で配列を使って何でもすることができますが、それをリターンするだけで、あなたが求めたことを行います。