php动态实现表格跨行跨列实现代码

2015-01-24信息快讯网

由于按照条件提取多台服务器生成的报表数据的需要,我们很可能用到php动态生成可以跨行跨列的表格,table跨行跨列杂糅在一起经常出现不好控制,而且行列合并属性的逻辑耦合度很高,所以对于这次的需要就有了如下东西

 
< ?php 
/* 
* author:xudafeng@126.com 
* blog:http://www.xdf.me 
* date:2012.7.28 
*/ 
class danteng { 
function init($col1_name, $col2_name, $col3_name, $time_unit) { 
echo "<table border=1><tr><th>" . $col1_name . "</th><th>" . $col2_name . "</th><th colspan=\"" . $time_unit . "\">" . $col3_name . "</th></tr>"; 
} 
function baobiao_danteng($name, $time_unit, $pro_name, $pre_name) { 
echo "<tr><th rowspan=\"" . count($pro_name) . "\">$name</th><td>" . $pro_name[0] . "</td>"; 
for ($i = 0; $i < $time_unit; $i++) { 
echo "<td>" . $pre_name . $i . ""; 
} 
echo "</tr>"; 
for ($j = 0; $j < (count($pro_name) - 1); $j++) { 
echo "<tr><td>" . $pro_name[($j + 1)] . "</td>"; 
for ($i = 0; $i < $time_unit; $i++) { 
echo "<td>" . $pre_name . $i . ""; 
} 
echo ""; 
} 
} 
function finish() { 
echo ""; 
} 
} 
?> 

调用方法如下:
 
$init = new danteng(); 
$init -> init('类型', '项目', '时间单元', $time_num); 
$init ->; baobiao_danteng('伏羲', $time_num, $fuxi_pro, 'pre_n'); 
$init ->; baobiao_danteng('女娲', $time_num, $nvwa_pro, '单元'); 
$init ->; baobiao_danteng('盘古', $time_num, $pangu_pro, '啊'); 
$init ->; baobiao_danteng('小冶', $time_num, $pangu_pro, '蛋子'); 
$init ->; finish(); 
©2014-2024 dbsqp.com