快速示例:array_1 = 1,2,3; array_2 = a,b,c和array_3 =白色,红色,蓝色。
我需要一个像array_4 =((1,a,white),(2,b,red),(3,c,blue))的数组。
我希望我不要混淆。提前谢谢。
答案 0 :(得分:7)
你的意思是Python的zip()
?这样做:
$zipped = array_map(null, $array_1, $array_2, $array_3);
如果您想要一个可以使用任意数量的数组执行此操作的函数,请参阅:Is there a PHP function like Python's zip?
答案 1 :(得分:2)
我猜你正在寻找单行班轮?我无法提供,但这是我的尝试:
$array_4=array();
for($i = 0 ; $i<count($array_1) ; ++$i) {
$array_4[$i] = array($array_1[$i], $array_2[$i], $array_3[$i]);
}
此代码当然假定所有输入数组都具有相同的长度。
如果你有超过3个输入数组,我会将它们全部放在一个数组中,并预先通过它:
$all_arrays = array($aray_1, $array_2, ...);
$output_array=array();
for($i = 0 ; $i<count($array_1) ; ++$i) {
$output_array[$i] = array();
foreach($all_arrays as $input_array) {
$output_array[$i][] = $input_array[$i];
}
}
答案 2 :(得分:0)
你的问题不是很明确,但是:
如果要将3个或更多数组的所有值组合到一个数组中,可以执行以下操作:
$array_4 = array_merge($array_1, $array_2, $array_3);
如果您想将所有这些数组合并为一个,您可以这样做:
$array_4[] = $array_1;
$array_4[] = $array_2;
$array_5[] = $array_3;
但我认为你真的在追踪Silvo上面发布的内容,因此给他+1了。
答案 3 :(得分:0)
只需一个简单的array_merge即可。
答案 4 :(得分:-3)
我认为最简单的方法是在不使用一堆array_X函数的情况下简单地将它们“连接”成一个数组。
例如
$arr1 = array(1,2,3);
$arr2 = array(a,b,c);
$arr3 = array("red","white","blue");
$bigArray[] = $arr1;
$bigArray[] = $arr2;
$bigArray[] = $arr3;
然后你会得到一个包含三个独立数组的数组,假设这就是你所追求的。
$ bigArray看起来像这样
Array (
0 Array (
0 => 1
1 => 2
2 => 3
)
1 Array (
0 => a
1 => b
2 => c
)
2 Array (
0 => red
1 => white
2 => blue
)
)