我有下面的多维数组,我想从每个数组的第一个元素开始制作一个新数组,而不是在每个数组的第二个元素之后制作一个数组,然后再制作一个新数组,我确实尝试了node_modules
循环和postgraphile
,但我无法帮助您解决此问题,谢谢。
下面是我的数组
graphile-build
我希望我的第一个新数组像
for
我的第二个新数组就像
foreach
答案 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));