php使用ceil函数显示多列中的数组数据

时间:2016-09-02 12:51:40

标签: php mysql arrays

例如,我有一个包含8个数据的数组。我希望以这种格式显示

$a = array(1,2,3,4,5,6,7,8);
======            
 1  2 
 3  4 
 5  6 
 7  8 
=====

带有11个数据的OR数组

$a = array(1,2,3,4,5,6,7,8,9,10,11);
=========
1  2  3
4  5  6
7  8  9
10 11  
=========

不确定哪个部分我错了。这是我的代码

$a = array(1,2,3,4,5,6,7,8);
$c = ceil(count($a)/2);

echo "<table>";
for($i=0; $i<$c;$i++){
echo "<tr>";
echo '<td>'.$a[$i].'</td>';
echo '<td>'.$a[$i+1].'</td>';
}
echo "</table>";

但是,我的数据以这种方式显示

======            
 1  2 
 2  3 
 3  4 
 4  5 
=====

基本上,我想以这种格式显示来自mysql的数据。但在此之前,我需要测试ceil函数并查看它是否正常工作。谁知道我的编码有什么问题?

2 个答案:

答案 0 :(得分:1)

如果您手动增加它,则每次都必须跳过1次循环。

$("#otherDiv").append($("#aggregatedDiv").prevAll().addBack());

我已经使用数学方法来确定它是否应该打印,因为它更快。但是,如果数组中有空索引,则可能需要使用$a = array(1,2,3,4,5,6,7,8,9,10,11); $size = sizeof($a); /* Your magic method to determine the total table cols. */ $cols = 3; #$cols = 2; echo "<table>"; for($i = 0; $i < $size; $i+=$cols){ echo "<tr>"; for($c = 0; $c < $cols; $c++){ if($i+$c >= $size){ break; } echo '<td>'.$a[$i+$c].'</td>'; } echo "</tr>"; } echo "</table>"; 方法作为内部for循环中的整个代码。

isset()

答案 1 :(得分:1)

由于每行有2个cels,因此需要计算实际索引。另外,请不要忘记关闭Action

<tr>

以下是清洁解决方案的完整示例:

for($i=0; $i<$c;$i++){
    echo "<tr>";
    echo '<td>'.$a[$i * 2].'</td>';
    echo '<td>'.$a[$i * 2 + 1].'</td>';
    echo '</tr>';
}