0

我试图将我的数组分成 3 列,其余的不能被 3 整除以显示。目前它没有显示。我的代码如下:

计数值为 8。

for($i=0; $i < count($subscriber); $i++) {

    if($i%3==0) $middle_data .= '<tr>';

    <td>Array fields goes here</td>

    if(($i+1)%3==0) $middle_data .= '</tr>';
}

目前它显示 2 行,但不能被 3 整除的最后一行没有出现。

4

2 回答 2

1

您的代码回显所有值,但产生无效标记。看起来像

<table>
<tr><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td></tr>
<tr><td></td><td></td>
</table>

试试这个

$subscriber = array_fill(0, 8, 'value');
$count_column = 3;

// loop by cells count, not values count
$count_cell = ceil(count($subscriber) / $count_column) * $count_column;

$middle_data = "<table>\n";
for ($i = 0; $i < $count_cell; $i++)
    {
    if ($i % $count_column == 0)
        $middle_data .= '<tr>';

    if (isset($subscriber[$i]))
        $middle_data .= '<td>' . $subscriber[$i] . '</td>';
    else
        $middle_data .= '<td></td>';

    if (($i + 1) % $count_column == 0)
        $middle_data .= "</tr>\n";
    }
$middle_data .= "</table>\n";
echo $middle_data;
于 2013-05-07T00:57:20.673 回答
0

试试这个

   <?php
    $subscriber= array('1','2','3','4','5',6,7,8);
    $middle_data="";

    if(count($subscriber))
    $middle_data .= '<tr>';

    for($i=0; $i < count($subscriber); $i++) 
    {        
        if((($i%3)==0 ) && $i!=0) 
        $middle_data .= '</tr><tr>';
        $middle_data .= " <td>$subscriber[$i] goes here </td>";
    }

    if(count($subscriber))
    $middle_data .= '</tr>';

    echo  $middle_data;
    ?>

输出

<tbody><tr> <td></td> <td></td> <td></td></tr> .... </tbody>
于 2013-05-07T01:03:47.910 回答