在PHP中垂直打印每列中的数组
我有一个数字数组,它的行数和列数是已知的。我希望每个循环中的每一列都打印在一个列表中在PHP中垂直打印每列中的数组,php,arrays,sorting,Php,Arrays,Sorting,我有一个数字数组,它的行数和列数是已知的。我希望每个循环中的每一列都打印在一个列表中 $row = 3; $col = 4; $arr=[ '1' , '2' , '3' , '4', '5' , '6' ,'7' , '8', '9' ,'10' ,'11' ,'12' ]; 输出: 1 5 9 2 6 10 3 7 11 4 8 12 我
$row = 3;
$col = 4;
$arr=[
'1' , '2' , '3' , '4',
'5' , '6' ,'7' , '8',
'9' ,'10' ,'11' ,'12'
];
输出:
- 1
-
- 5
-
- 9
-
- 2
-
- 6
-
- 10
-
- 3
-
- 7
-
- 11
-
- 4
-
- 8
-
- 12
-
我尝试使用数组块foreach
区块是一组连续的项目,但您要在此处“分组”的项目不是连续的
使用两个嵌套的for
循环来解决这一问题相当简单。您所需要做的就是根据当前的行数和列数计算正确的索引以访问正确的数组元素
(在这里,您对变量的命名似乎有点错误,但我将坚持在本例中使用它们的方式。)
($c=0;$c<$col;++$c)的{
回声“”;
对于($r=0;$r<$row;++$r){
回显“- ”。($arr[$r*$col+$c])。
;
}
回声“
”;
}
您需要四个ul
元素,因此我们首先循环“列”,然后在每个列表中,您需要三个项目,因此我们循环内部循环中的“行”数
然后,只需计算访问适当元素的索引,即当前行索引乘以列数,再加上当前列索引。这是一个1d数组请检查:请至少展示您自己解决问题的一些尝试。具体询问障碍物,而不是将整个问题原封不动地粘贴在此处。@aryanagarwal是的,问题出在哪里?@Koalayeng是的,我知道我尝试使用array_chunk进行处理,但结果按顺序显示,我不想在水平方向上使问题变得混乱question@Dragon:请出示您的PHP代码。谢谢,我将测试您的代码
for($c = 0; $c < $col; ++$c) {
echo '<ul>';
for($r = 0; $r < $row; ++$r) {
echo '<li>' . ($arr[$r * $col + $c]) . '</li>';
}
echo '</ul>';
}