<html> <head> <title>流程控制综合运用实例</title> <head> <body> <?php //首先定义一个数组——图书类型数组 $type[0][0]="学生用书"; //第一个大类别 $type[0][1]="学生教材"; //第一大类中的第一小类 $type[0][2]="教辅用书"; $type[0][3]="课外读物"; $type[0][4]="考试题集"; $type[1][0]="名著"; //第二个大类别 $type[1][1]="中国古典"; //第二大类中的第一小类 $type[1][2]="世界名著"; $type[1][3]="英文原著"; $type[2][0]="考试用书"; //第三个大类别 $type[2][1]="公务员"; //第三大类中的第一小类 $type[2][2]="会计师"; $type[2][3]="医药师"; $type[3][0]="儿童读物"; //第四个大类别 $type[3][1]="看图识字"; //第四大类中的第一小类 $type[3][2]="动漫人物"; $type[4][0]="武侠小说"; //第五个大类别 $type[4][1]="金庸小说"; //第五大类中的第一小类 $type[4][2]="古龙小说"; $type[4][3]="玄幻小说"; echo "<table border=\"1\">"; //打印表格头 for($i=0;$i<count($type);$i++) //外层循环 { $s=0; //定义循环标识变量 for($j=0;$j<count($type[$i]);$j++) //内层循环 { if($s%2==0) echo "<tr>"; //如果标识为偶数新起一行 $s++; //标识自增 if($j==0) //判断是否为大类别 echo "<td colspan=2 bgcolor=\"#cccc00\">"; //打印大类别的表格 else echo "<td bgcolor=\"#ccccff\">"; //打印小类别的表格 echo $type[$i][$j]; //输出数据 echo "</td>"; //表格结束 if($j==0) //判断是否为大类别 $s++; //如果为大类别则标识再次自增 if($s%2==0) echo "</tr>"; //如果大类别一格或小类别两格则表格的地行结束 if($s==(count($type[$i])+1) && count($type[$i])%2==0)//判断小类别项为奇数的情况 echo "<td bgcolor=\"#ccccff\"> </td></tr>";//在后面添加空表格 } } ?> </body> </html> 这里的循环语句中有个S变量,起到了很关键的作用,算是很巧妙!
有一点点古老的代码风格,可以改进和提高的地方还有很多,虽然现在有些二流网站三流网站的广告部分确实是长这样,但是看楼主这么努力学习,应该不会到这种程度就满意了,现在在排版上已经相当不建议采用table了,除非那真的是一个表格,比如楼主代码中展示的,每个分类都是刚好有三个子类,那如果其中一个分类是四个子类代码需要做的改动就有点大了,建议考虑排版上采用ul来应付项数不固定的情况,PHP循环里考虑使用foreach这种遍历性的循环,不仅效率高了,也不用担心漏掉项了