合并3个或更多阵列(php)

时间:2010-08-15 18:50:08

标签: php

快速示例:array_1 = 1,2,3; array_2 = a,b,c和array_3 =白色,红色,蓝色。

我需要一个像array_4 =((1,a,white),(2,b,red),(3,c,blue))的数组。

我希望我不要混淆。提前谢谢。

5 个答案:

答案 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
       )
)