将php数组输出html表格的方法


Posted in PHP onFebruary 24, 2014
<?php
class xtable
{
 private $tit,$arr,$fons,$sextra;
 public function __construct()
 {
  $this->tit=array();       // strings with titles for first row 
  $this->arr=array();       // data to show on cells
  $this->fons=array("#EEEEEE","#CCEEEE");  // background colors for odd and even rows
  $this->sextra="";       // extra html code for table tag
 } public function extra($s)      // add some html code for the tag table
 {
  $this->sextra=$s;
 }
 public function background($arr) {if (is_array($arr)) $this->fons=$arr; else $this->fons=array($arr,$arr);}
 public function titles($text,$style="") {$this->tit=$text; $this->sesttit=$style;}
 public function addrow($a) {$this->arr[]=$a;}
 public function addrows($arr) {$n=count($arr); for($i=0;$i<$n;$i++) $this->addrow($arr[$i]);}
 public function html()
 {
  $cfondos=$this->fons;
  $titulos="<tr>";
  $t=count($this->tit);
  for($k=0;$k<$t;$k++)
  {
   $titulos.=sprintf("<th>%s</th>",$this->tit[$k]);
  }
  $titulos.="</tr>";
  $celdas="";
  $n=count($this->arr);
  for($i=0;$i<$n;$i++)
  {
   $celdas.=sprintf("<tr style='background-color:%s'>",$this->fons[$i%2]);
   $linea=$this->arr[$i];
   $m=count($linea);
   for($j=0;$j<$m;$j++)
    $celdas.=sprintf("<td  %s>%s</td>","",$linea[$j]);
   $celdas.="</tr>";
  }
  return sprintf("<table cellpadding='0' cellspacing='0' border='1' %s>%s%s</table>",$this->sextra,$titulos,$celdas);
 }
 public function example()
 {
  $tit=array("Apellidos","Nombre","Telefono"); 
  $r1=array("Garcia","Ivan","888"); 
  $r2=array("Marco","Alfonso","555"); 
  $x=new xtable(); 
  $x->titles($tit);      //take titles array
  $x->addrows(array($r1,$r2));   // take all rows at same time
  return $x->html();     //return html code to get/show/save it 
 }
}


// Example
$t1=new xtable();
echo $t1->example()."<hr />";
$t2=new xtable();
for($i=1;$i<=10;$i+=2)
 {
  $t2->addrow(array("ODD",$i));
  $t2->addrow(array("EVEN",$i+1));
 }
$t2->background(array("pink","gold"));
$t2->titles(array("TYPE","#"));
$t2->extra(" style='width:500px; background-color:cyan; color:navy;'");
echo $t2->html()."<hr />";
$t3=new xtable();
for($i=1;$i<=6;$i++)
 {
  $t3->addrow(array("5x".$i,5*$i));
 }
$t3->background(array("olive","maroon"));
$t3->titles(array("Multiplication table","5"));
$t3->extra("style='border:dotted red 10px; padding-left:4px;padding-right:4px; text-align:right;width:500px; background-color:black; color:white;'");
echo $t3->html()."<hr />";
$t4=new xtable();
$a=array("#");
for($i=1;$i<=10;$i++)
 {
  $a[]=$i;
 }
$t4->addrow($a);
$t4->background(array("pink","gold"));
$tit=array(); $tit[]="Numbers";
for($i=1;$i<=10;$i++) $tit[]="#";
$t4->titles($tit);
$t4->extra("style='border:solid 1px silver; padding-left:4px;padding-right:4px; text-align:center;width:500px; background-color:cyan; color:navy;'");
echo $t4->html()."<hr />";
?>
PHP 相关文章推荐
不用mod_rewrite直接用php实现伪静态化页面代码
Oct 04 PHP
PHP 数组遍历方法大全(foreach,list,each)
Jun 30 PHP
解析PHP缓存函数的使用说明
May 10 PHP
深入PHP autoload机制的详解
Jun 09 PHP
PHP中Session可能会引起并发问题
Jun 26 PHP
PHP.ini安全配置检测工具pcc简单介绍
Jul 02 PHP
ECSHOP在PHP5.5及高版本上报错的解决方法
Aug 31 PHP
yii2超好用的日期组件和时间组件
May 05 PHP
PHP实现的超长文本分页显示功能示例
Jun 04 PHP
YII分模块加载路由的实现方法
Oct 01 PHP
php桥接模式应用案例分析
Oct 23 PHP
Laravel监听数据库访问,打印SQL的例子
Oct 24 PHP
php格式化日期和时间格式化示例分享
Feb 24 #PHP
php目录操作实例代码
Feb 21 #PHP
php无限遍历目录示例
Feb 21 #PHP
php自动加载autoload机制示例分享
Feb 20 #PHP
php多文件上传下载示例分享
Feb 20 #PHP
php分页代码学习示例分享
Feb 20 #PHP
php多文件上传实现代码
Feb 20 #PHP
You might like
PHP中创建空文件的代码[file_put_contents vs touch]
2012/01/20 PHP
微信公众平台DEMO(PHP)
2016/05/04 PHP
YII框架批量插入数据的方法
2017/03/18 PHP
php lcg_value与mt_rand生成0~1随机小数的效果对比分析
2017/04/05 PHP
PHP实现批量清空删除指定文件夹所有内容的方法
2017/05/30 PHP
PHP的PDO事务与自动提交
2019/01/24 PHP
thinkphp5框架调用其它控制器方法 实现自定义跳转界面功能示例
2019/07/03 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
2021/03/09 PHP
javascript数字格式化通用类 accounting.js使用
2012/08/24 Javascript
js动态添加onload、onresize、onscroll事件(另类方法)
2012/12/26 Javascript
中文路径导致unitpngfix.js不正常的解决方法
2013/06/26 Javascript
JS实现QQ图片一闪一闪的效果小例子
2013/07/31 Javascript
Javascript writable特性介绍
2015/02/27 Javascript
JavaScript实现点击按钮切换网页背景色的方法
2015/10/17 Javascript
jQuery中判断对象是否存在的方法汇总
2016/02/24 Javascript
详解angular2封装material2对话框组件
2017/03/03 Javascript
将input框中输入内容显示在相应的div中【三种方法可选】
2017/05/08 Javascript
JS实现自动轮播图效果(自适应屏幕宽度+手机触屏滑动)
2017/06/19 Javascript
js禁止Backspace键使浏览器后退的实现方法
2017/09/01 Javascript
基于js 字符串indexof与search方法的区别(详解)
2017/12/04 Javascript
vue2中使用sass并配置全局的sass样式变量的方法
2018/09/04 Javascript
JS实现根据数组对象的某一属性排序操作示例
2019/01/14 Javascript
浅谈vuex为什么不建议在action中修改state
2020/02/02 Javascript
[02:15]2014DOTA2国际邀请赛 专访LGD.lin小兔子是大腿
2014/07/14 DOTA
[04:49]2014DOTA2国际邀请赛 Newbee顺利挺进总决赛 ImbaTV独家专访
2014/07/19 DOTA
Django CBV类的用法详解
2019/07/26 Python
OpenCV 使用imread()函数读取图片的六种正确姿势
2020/07/09 Python
python源文件的字符编码知识点详解
2021/03/04 Python
canvas之自定义头像功能实现代码示例
2017/09/29 HTML / CSS
Reformation官网:美国女装品牌
2018/09/14 全球购物
汽车技术服务与营销专业在籍生自荐信
2013/09/28 职场文书
食品安全检查制度
2014/02/03 职场文书
元旦联欢会感言
2014/03/04 职场文书
西双版纳导游词
2015/02/03 职场文书
党小组意见范文
2015/06/08 职场文书
九大龙王魂骨,山龙王留下躯干骨,榜首死的最憋屈(被捏碎)
2022/03/18 国漫