在一个关联数组中合并两个关联数组

时间:2017-08-16 02:53:25

标签: php arrays

我想在一个数组中合并许多不同的关联数组,但是以assoc数组的形式。就像我有这样的不同阵列

SELECT * FROM  table WHERE id={$id} GROUP BY name

并希望制作一个类似

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

我从csv文件中获取这些数组。请帮忙。感谢

2 个答案:

答案 0 :(得分: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 :(得分:1)

我提供了另一种观点,在我看来它是针对任务本身进行优化的,但在某些情况下可能会有用。

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

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

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

该函数使用splat运算符,它本身收集发送给函数的任何参数作为数组中的条目,在该示例中称为数组。我们可以在该函数中对数组执行任何我们想要的操作,但只需重新调整它,它就可以满足您的要求。