删除do-while中的最后一个元素

时间:2013-04-22 13:42:37

标签: php

如何删除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}}。这可能吗?

4 个答案:

答案 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