我有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)
有一种简单的方法吗?
答案 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);