如何删除do-while
生成的表中的最后一个元素?
就我而言,最后tr/td
存储了div.dividing_line
。
代码:
$ArrayLength = 6;
$i = 1;
do {
echo '
<tr>
<td valign="middle">Data_Position</td>
<td valign="middle">Data_Item</td>
<td valign="middle">Data_Pieces</td>
<td valign="middle">Data_Price</td>
</tr>
<tr>
<td colspan="4"><div class="dividing_line"></div></td>
</tr>
';
++$i;
} while ($i < $ArrayLength+1);
例如:如果我有一个包含6个项目的数组,通常do-while
将完成这项工作,那么最终会有6个tr
个数据和6个tr
'使用dividing_line
。
我需要的是6 tr
的数据和tr
的{{1}}。这可能吗?
答案 0 :(得分:1)
$ArrayLength = 6;
$i = 1;
do {
echo '
<tr>
<td valign="middle">Data_Position</td>
<td valign="middle">Data_Item</td>
<td valign="middle">Data_Pieces</td>
<td valign="middle">Data_Price</td>
</tr>';
if($i < $ArrayLength)
{
echo '
<tr>
<td colspan="4"><div class="dividing_line"></div></td>
</tr>';
}
++$i;
} while ($i < $ArrayLength+1);
答案 1 :(得分:1)
试试这个 -
$ArrayLength = 6;
$i = 1;
do {
echo '
<tr>
<td valign="middle">Data_Position</td>
<td valign="middle">Data_Item</td>
<td valign="middle">Data_Pieces</td>
<td valign="middle">Data_Price</td>
</tr>';
if($i != $ArrayLength) {
echo '<tr>
<td colspan="4"><div class="dividing_line"></div></td>
</tr>
';
}
++$i;
} while ($i < $ArrayLength+1);
答案 2 :(得分:1)
使用额外的if语句检查您是否在最后一个元素:
if (%i < $ArrayLength) { echo '<tr>...dividing_line</tr>'; }
答案 3 :(得分:0)
我认为你的方法只需要一个额外的步骤。
可能是这样的:
$data = null;
foreach ($rows as $row) {
$data[] = "<tr><td valign=\"middle\">Data_Position</td><td valign=\"middle\">Data_Item</td><td valign=\"middle\">Data_Pieces</td><td valign=\"middle\">Data_Price</td></tr>";
}
print implode("<tr><td colspan=\"4\"><div class=\"dividing_line\"></div></td></tr>", $data);
这样,您可以在没有任何逻辑的情况下完成您想要的任务。当然,它可以改变或重新设计,但我认为这种方式将为您提供一个简单而又优雅的解决方案。
希望有所帮助:P