我目前正在制作一张动态表格:
echo '<table border=1>';
echo '<tr align="center" width="140"><td>column 1 →
<br />↓ column 2</td>';
echo "<td width='70'>{$c1}</td>";
echo "<td width='70'>{$c2}</td>";
echo "<td width='70'>{$c3}</td>";
echo "<td width='70'>{$c4}</td>";
echo "<td width='70'>{$c5}</td>";
echo '</tr>';
for ($i = $min; $i <= $max; $i+=5) {
echo '<tr align="center">';
echo '<td>'.$i.'</td>
<td>'.$c1*$i.'</td>
<td>'.$c2*$i.'</td>
<td>'.$c3*$i.'</td>
<td>'.$c4*$i.'</td>
<td>'.$c5*$i.'</td>';
echo '</tr>';
}
echo '</table>';
我只是想知道是否有更有效的耗时方法来生成它?
该表是根据以下输入
创建的min, max, c1, c2, c3, c4, c5
其中,例如:
min=30, max=45, c1=5, c2=10, c3=15, c4=20, c5=25
该表可能类似于:
提前致谢!
答案 0 :(得分:2)
我不会echo
HTML,而只是使用PHP中的值填充表格。这使它可以说更具可读性。
至于耗时较少,实际上并没有什么可以省略的,但是再说一遍,它只需要几分钟就可以解决它。
<table>
<tr>
<td>Title</td>
<td><?php echo $c1 ?></td>
<td><?php echo $c2 ?></td>
<td><?php echo $c3 ?></td>
<td><?php echo $c4 ?></td>
<td><?php echo $c5 ?></td>
</tr>
<?php for ($i = $min; $i <= $max; $i+=5): ?>
<tr>
<td><?php echo $i ?></td>
<td><?php echo $c1 * $i ?></td>
<td><?php echo $c2 * $i ?></td>
<td><?php echo $c3 * $i ?></td>
<td><?php echo $c4 * $i ?></td>
<td><?php echo $c5 * $i ?></td>
</tr>
<?php endfor; ?>
</table>
答案 1 :(得分:1)
确实没有更快的制作表格的方法。但是,我建议,如果要输出那么多HTML,则退出PHP模式以进行清理。也许改变这个:
echo "<td width='70'>{$c1}</td>";
echo "<td width='70'>{$c2}</td>";
echo "<td width='70'>{$c3}</td>";
echo "<td width='70'>{$c4}</td>";
echo "<td width='70'>{$c5}</td>";
......进入......
<td width='70'><?=$c1?></td>
<td width='70'><?=$c2?></td>
<td width='70'><?=$c3?></td>
<td width='70'><?=$c4?></td>
<td width='70'><?=$c5?></td>
答案 2 :(得分:1)
我会采取一些不同的方法。起初我不喜欢将计算(甚至是简单的)和视图/结果/ html代码混合在一起的想法。所以我将这些任务分开。通常在大多数更大的应用程序中,这种表生成甚至不可能(如MVC框架)或至少不是首选。我也移出了桌子的造型。
接下来我不喜欢编号值,数据列表看起来像一个数组。我没有足够的元信息是否正确所以我只是把它变成了一个数组,因为它看起来很有意义。列数量现在也很灵活。
查看代码(所以PHP)我总是尽量保持紧凑但可读。大多数简单的代码,不是很多循环,没有很多不同的功能只是基础。所以不是具有特定步骤的for循环,因为它不相关。视图部分应该在获取数据时显示数据。
<?PHP
//settings
$min=30;
$max=45;
$step=5;
$cols=array(5,10,15,20,25);
//result array
$data=array();
//data calculation
for($i = $min; $i <= $max; $i+=$step) {
foreach($cols AS $col => $val) {
$data[$i][$col]=$val*$i;
}
}
//html generation
?>
<style type="text/css">
th, td {
text-align: center;
vertical-align: top;
}
</style>
<table border=1>
<thead>
<tr>
<th scope="row">column 1 →</th>
<?PHP
foreach($cols AS $val) {
echo '<th rowspan=2 scope="col">'.$val.'</th>';
}
?>
</tr>
<tr>
<th scope="col">↓ column 2</th>
</tr>
</thead>
<tbody>
<?PHP foreach($data AS $i => $row) { ?>
<tr scope="row">
<td><?PHP echo $i; ?></td>
<td><?PHP echo implode('</td><td>', $row); ?></td>
</tr>
<?PHP } ?>
</tbody>
</table>
希望部件对您的项目很有用。希望有一些。我喜欢写出相当多的缩进/制表符/换行符,但您可以随时根据需要设置HTML样式。除此之外,我还总是添加不同于您的问题的表头,正文和示波器,但在布局方面提供相同的输出。