我想在一个数组中合并许多不同的关联数组,但是以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文件中获取这些数组。请帮忙。感谢
答案 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运算符,它本身收集发送给函数的任何参数作为数组中的条目,在该示例中称为数组。我们可以在该函数中对数组执行任何我们想要的操作,但只需重新调整它,它就可以满足您的要求。