我需要此输出..
1 3 5
2 4 6
我想使用数组(1,2,3,4,5,6)之类的数组函数。如果我编辑这个数组像数组(1,2,3)意味着输出需要显示像
1 2 3
这个概念只有最大3列。如果我们给出数组(1,2,3,4,5)意味着输出应该是
1 3 5
2 4
假设我们将给出数组(1,2,3,4,5,6,7,8,9)意味着o / p是
1 4 7
2 5 8
3 6 9
仅限最多3列。取决于给定的输入,行将使用3列创建。这是可能的PHP吗?Am做小研究&数组函数的开发。我认为这是可能的。你会帮助我吗? 有关更多信息:I / p:array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) O / P:
1 6 11
2 7 12
3 8 13
4 9 14
5 10 15
答案 0 :(得分:1)
使用array_chunk()函数:http://www.php.net/manual/en/function.array-chunk.php
$example_array = array('a', 'b', 'c', 'd', 'e');
$chunked_array = array_chunk($example_array, 3));
$ chunked_array将是一个包含2个子数组的数组:array(array(a,b,c),array(d,e))
答案 1 :(得分:1)
获取行数就像 ceiling(每行的元素/元素总数)一样简单。您需要做的就是将元素从一个一维数组复制到另一个二维数组。一种可能的方法:
<?php
$input = array(
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
);
$col = 3;
$row = ceil(count($input) / $col);
$output = array();
while(count($input)){
$output[] = array_splice($input, 0, $row);
}
for($i = 0; $i < $row; $i++) {
$temp = array();
for($j = 0; $j < $col; $j++) {
if (isset($output[$j][$i])) {
$temp[] = $output[$j][$i];
}
}
echo implode(", ", $temp) . "\n";
}
输出
1, 6, 11
2, 7, 12
3, 8, 13
4, 9
5, 10