作者liaosankai (低温烘焙)
看板PHP
标题[分享] 将阵列转输出为表格(table)小技巧
时间Thu Nov 26 20:05:02 2009
有时候我们需要将阵列的值以表格方式排列显示,例如:
┌─┬─┬─┐
│1│2│3│
├─┼─┼─┤
│4│5│6│
├─┼─┼─┤
│7│8│ │
└─┴─┴─┘
但是碍於table的换行并不是单纯输出<br />就好
必需产生一个<tr></tr>来包每行的<td></td>
==========================
【方法一】
优点:比较直觉,而且阵列索引值可以保持使用
缺点:如果资料不是以阵列存放,而是物件阵列
时无法使用array_chunk()来分组
==========================
<?php
//假设资料
$data = array('a'=>1,2,'b'=>3,4,5,6,7,8);
//切割数
$chunk = 3;
//将阵列重新分组,并保持索引值
$data = array_chunk($data,$chunk,TRUE);
?>
<table>
<?php foreach($data as $row):?>
<tr>
<?php foreach($row as $val):?>
<td><?php echo $val?></td>
<?php endforeach;?>
</tr>
<?php endforeach;?>
</table>
==========================
【方法二】
优点:如果资料不是一般阵列,而是透过物件方式
取值的物件阵列,也可以正常的完成表格
缺点:如果套用於一般阵列中,碍於$key可能是字串索引
所以必需额外宣告一个计数变数$i来做为断行参考
==========================
<?php
//假设资料
$data = (object) array(1,2,3,4,5,6,7,8);
//切割数
$chunk = 2;
?>
<table>
<tr>
<?php foreach($data as $key => $val):?>
<td><?php echo $val?></td>
<?php if(($key+1) != count($data) &&
($chunk == 1 || ($key + 1)%$chunk == 0)):?>
</tr><tr>
<?php endif;?>
<?php endforeach;?>
</tr>
</table>
以上分享,错谬之处请指正
--
欢迎来我的网志看看
@
http://liaosankai.pixnet.net/blog
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.244.120.196
※ 编辑: liaosankai 来自: 60.244.120.196 (11/26 20:40)
※ 编辑: liaosankai 来自: 211.74.61.2 (06/24 18:27)
※ 编辑: liaosankai 来自: 140.134.213.205 (09/14 18:53)
※ 编辑: liaosankai 来自: 140.134.213.205 (09/15 09:33)
※ 编辑: liaosankai 来自: 140.134.213.205 (09/15 14:24)
※ 编辑: liaosankai 来自: 113.196.199.5 (05/05 22:07)