作者dinos (守护神)
看板Web_Design
标题Re: [问题]回圈产生表格的疑问
时间Sun Sep 23 20:15:20 2007
※ 引述《roga (凝视)》之铭言:
: ※ 引述《hotricky (阳光网球)》之铭言:
: : 最近写php如相本的程式发现
: : 当我想将资料一笔笔以表格方式秀出来时
: : 都是由上往下一直生表格,请问有什麽办法
: : 可以控制表格廻圈产生时,是可依照由左而右
: : 的顺序产生呢?
: : 例如:
: : ★ ★ ★
: : ★ ★ ★
: : .....
: : 一行生出三格後自动换行产生这样的顺序
: : = = 或是简单的问 无名相本 那样的相本选单怎麽
: : 弄的也行…
: : 希望各位高手提供意见 谢谢喔^^
: 当然是用 CSS 去排比较快啊 XD
: 如果是用 table 排,要多很多次判断和运算,还有多很多字元。
: for($i = 1 ; $i<= 1000 ; $i++) { //假设有 1000 个 item
: if($i % 4 == 1) // 多第一次运算&判断,4个col换行
: echo '<tr>';
: echo '<td>item</td>';
: if($i %4 == 0) // 多第二次运算 & 判断
: echo '</tr>';
: }
: 回圈跑一千次,就多两千次判断+两千次余数运算,浪费啊...
: 而且还有一种问题要处理,就是当总数不等於栏位的倍数的时候,
: 你的头会痛死 XD
: 不过现在大家 CPU 都很快,所以其实也没差..多些一些 if else 就是了 XD
不见得要一堆判断唷
<?php
$colsOfRow=3;
/***
假设 $item 的元素索引是由 0 递增
***/
$total=count($item);
if(($n=$total%$colsOfRow)!=0){
for($i=0;$i<$n;$i++){array_push($item,'');
}
for($i=0;$i<$total;$i+=$colsOfRow){
?>
<tr>
<?php
for($j=0;$j<$colsOfRow;$j++){
?>
<td><?php echo $item[$i*$colsOfRow+$j]; ?></td>
<?php
}
?>
</tr>
<?php
}
?>
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.158.15