考虑4个阵列:
$array1 = [
0 => "Bill",
1 => "John"
];
$array2 = [
0 => "Gates",
1 => "Wayne"
];
$array3 = [
0 => "alive",
1 => "dead"
];
$array1 = [
0 => "man",
1 => "man"
];
问题:我如何操作它们以获得这种结果:
$array5 = [
0 => [
0 => Bill,
1 => Gates,
2 => alive,
3 => men
],
1 => [
0 => John,
1 => Wayne,
2 => dead,
3 => men
]
];
谢谢你的帮助。
这应该可以。不过我还没有测试过。
$inputs = array( $arr1, $arr2, $arr3, $arr4 );
$output = array();
foreach( $inputs as $arr ){
$output[] = array();
foreach( $arr as $k=>$v ){
$output[$k][] = $v;
}
}
这应该非常灵活。处理任意数量的输入数组并创建输出数组的#=每个输入数组的长度。
您可以使用array_map:
array_map(null, $array1, $array2, $array3, $array4)
array_map:的PHP文档中提到了这种行为
这个函数的一个有趣的用途是构造一个数组数组,可以通过使用NULL作为回调函数的名称来轻松执行
$array1 = [
0 => "Bill",
1 => "John"
];
$array2 = [
0 => "Gates",
1 => "Wayne"
];
$array3 = [
0 => "alive",
1 => "dead"
];
$array4 = [
0 => "man",
1 => "man"
];
$array5 = array();
for($i = 0; $i < count($array1); $i++) {
$array5[$i] = array($array1[$i], $array2[$i], $array3[$i], $array4[$i]);
}
var_dump($array5);
结果:
array (size=2)
0 =>
array (size=4)
0 => string 'Bill' (length=4)
1 => string 'Gates' (length=5)
2 => string 'alive' (length=5)
3 => string 'man' (length=3)
1 =>
array (size=4)
0 => string 'John' (length=4)
1 => string 'Wayne' (length=5)
2 => string 'dead' (length=4)
3 => string 'man' (length=3)