合并数组
问题描述:
您好我有以下数组转换我的文章为基础指标一套新的列表...像水平到垂直的方式合并数组
mainArray['a'] = [1,2,3,4];
mainArray['b'] = [4,5,6,7];
mainArray['c'] = [7,8,9,10];
mainArray['d'] = [10,11,12,13];
我需要短期调度研究,以使它像
[1,4,7,10][2,5,8,11][3,6,9,12][4,7,10,13]
答
这可能是你在找什么:
<?php
$input = [
'a' => [1,2,3,4],
'b' => [4,5,6,7],
'c' => [7,8,9,10],
'd' => [10,11,12,13]
];
$output = [];
array_walk($input, function($entry) use (&$output) {
foreach ($entry as $key=>$val) {
$output[$key][] = $val;
}
});
print_r($output);
的替代将是一个保守迭代(我认为这是丑陋的人,各种原因):
<?php
$input = [
'a' => [1,2,3,4],
'b' => [4,5,6,7],
'c' => [7,8,9,10],
'd' => [10,11,12,13]
];
$output = [];
for ($i=0; $i<count($input['a']); $i++) {
$output[] = array_column($input, $i);
}
print_r($output);
以上代码的输出:
Array
(
[0] => Array
(
[0] => 1
[1] => 4
[2] => 7
[3] => 10
)
[1] => Array
(
[0] => 2
[1] => 5
[2] => 8
[3] => 11
)
[2] => Array
(
[0] => 3
[1] => 6
[2] => 9
[3] => 12
)
[3] => Array
(
[0] => 4
[1] => 7
[2] => 10
[3] => 13
)
)
你尝试过这么远吗?结果是什么样的结构?一个字符串? – tima
欢迎来到SO。请阅读:[如何创建一个最小,完整和可验证的示例](http://*.com/help/mcve)以及[我如何问一个好问题?](http://*.com/帮助/如何问) –
它可以通过双重迭代mainArray来完成,但我不想迭代double,是否有任何简单的方法来创建4个独立的数组(垂直合并) –