例如,我有一个包含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函数并查看它是否正常工作。谁知道我的编码有什么问题?
答案 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>';
}