我有一个有趣的问题,似乎早就解决了,但找不到任何东西。
我有一个简单的数组,可变长度。
我需要将数组放在表格中,但只有 X 列宽。意思是,如果数组有 25 个值,而我只想要 3 列,则将有 2 列 11 和 1 列 3(余数)。
像这样(每个数字代表表格单元格中的一个值):
1 12 23
2 13 24
3 14 25
4 15
5 16
6 17
7 18
8 19
9 20
10 21
11 22
我花了一整天的时间,看起来很简单,但要么我的游戏今天不在,要么比我想象的要难。
当然,水平移动没问题,很简单,但垂直移动是必需的,我从来不知道数组的大小和列数会有所不同。
感谢您的帮助!
最佳答案
如果您希望最后一列包含尽可能多的元素以适合其他列(此问题最动态的情况),这将是一个解决方案:
<?php
$numberOfColumns = 3;
$myArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25];
$arrayLength = count($myArray); // 25
$columnLength = ceil($arrayLength / $numberOfColumns); // 9
for ($i = 0; $i < $columnLength; $i++) {
for ($j = 0; $j < $numberOfColumns; $j++) {
$arrayIndex = $j * $columnLength + $i;
if ($arrayIndex < $arrayLength) {
echo $myArray[$arrayIndex] . " ";
}
}
echo '<br>';
}
这是我浏览器的输出:
关于PHP:将数组堆叠在表中的多个列上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39987594/