2017-08-16 100 views
-2

我想合并一个数组中的许多不同关联数组,但采用assoc数组的形式。像我有不同的阵列,这样将两个关联数组合并到一个关联数组中

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

我提供的观点,这是任务本身,因为我看到它,但可能在某些情况下是有用免得优化的另一个点。

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

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

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

即函数使用图示运算符,它本身集的任何参数以阵列发送到功能作为条目,称为数组中的例子。我们可以通过该函数中的数组来完成我们想要的任何操作,但只需通过重新调用它即可完成您要求的操作。