如何从现有的多维数组创建多个新数组

时间:2018-08-23 16:44:40

标签: php arrays

我有下面的多维数组,我想从每个数组的第一个元素开始制作一个新数组,而不是在每个数组的第二个元素之后制作一个数组,然后再制作一个新数组,我确实尝试了node_modules循环和postgraphile,但我无法帮助您解决此问题,谢谢。

下面是我的数组

graphile-build

我希望我的第一个新数组像

for

我的第二个新数组就像

foreach

2 个答案:

答案 0 :(得分:3)

Foreach使用$ key循环数组,您将可以使用array_column轻松获得其他项。

foreach($arr[0] as $key => $sub){
     $new[$key] = array_column($arr, $key);
}

现在$ new将具有三个项目(与第一个子数组相同)。


要解决您的要求,我必须循环查找数组的最大数量。

$max =0;
foreach($arr as $sub){
    $max = max($max, count($sub));
}
for($i=0;$i<$max;$i++){
    $new[$i] = array_column($arr, $i);
}

答案 1 :(得分:3)

您可以转置数组,删除空条目并获取所需的行。如果您的结果将位于$res[0]$res[1]数组中

$res = array_map('array_filter', array_map(null, ...$a));

demo