重组php数组

时间:2013-03-07 17:43:00

标签: php arrays foreach

我有3个这样的数组:

  

Array1(       [0] => VALUE1-1       [1] => VALUE1-2       [2] => VALUE1-3)

     

Array2(       [0] => VALUE2-1       [1] => VALUE2-2       [2] => VALUE2-3)

     

Array3(       [0] => VALUE3-1       [1] => VALUE3-2       [2] => VALUE3-3)

我想做什么

  

Array4(       [0] => VALUE1-1       [1] => VALUE2-1       [2] => VALUE3-1)

     

Array5(       [0] => VALUE1-2       [1] => VALUE2-2       [2] => VALUE3-2)

     

Array6(       [0] => VALUE1-3       [1] => VALUE2-3       [2] => VALUE3-3)

有一种简单的方法吗?

1 个答案:

答案 0 :(得分:0)

这称为transposing。如果将数组1,2和3组合成2D数组,可以使用以下答案:https://stackoverflow.com/a/3423692/206403

function transpose($array) {
    array_unshift($array, null);
    return call_user_func_array('array_map', $array);
}

然后你可以像这样使用它:

$myArray = array(
    array('value 1-1', 'value 1-2', 'value 1-3'),
    array('value 2-1', 'value 2-2', 'value 2-3'),
    array('value 3-1', 'value 3-2', 'value 3-3')
);

$newArray = transpose($myArray);

然后,如果需要,您可以将$newArray分成3个数组。

DEMO:http://codepad.org/N6tZgajt

编辑:这与调用相同:

$newArray = array_map(null, $array1, $array2, $array3);

编辑2:对于一个疯狂的单行,你可以这样做:

list($array4, $array5, $array6) = array_map(null, $array1, $array2, $array3);