在行中显示第一组结果

时间:2016-02-10 09:22:27

标签: php arrays

我想使用foreach循环迭代一组数据。

但是,我希望前4个结果每行显示两个项目。之后我希望其余数据每行显示一个项目

我找到了一个可能的解决方案here

$data = range(1, 30);
for($count = 0; $count < count($data);)
{
    echo "<tr>\n";
    for($i = 0; $count < count($data) && $i < 2; $count++, $i++) {
        echo "\t<td>$data[$count]</td>\n";
    }
    for(; $i < 2; $i++) {
        echo "\t<td>-</td>\n";
    }
    echo "</tr>\n";
}

这段代码的问题是它以两行的形式显示所有数据。但是只希望前4个结果以这种方式显示。

4 个答案:

答案 0 :(得分:0)

您已经两次使用已增加的$i变量。

$i永远不会< 2

添加此项

for($j = 0; $j < 2; $j++) {
    echo "\t<td>-</td>\n";
}

Test here

答案 1 :(得分:0)

尝试 -

$data = range(1, 30);
for($count = 0; $count < count($data); $count++)
{
    echo "<tr>";
    if($count < 2) {
       for($i = 1; $i <= 2; $i++) {
          echo "<td>" . $data[$count] . "</td>";
          if($i == 1) {
             echo "</tr><tr>";
          }
       }
    } else {
       echo "<td>" . $data[$count] . "</td>";
    }
    echo "</tr>";
}

答案 2 :(得分:0)

您可以这样做:

$data = range(1, 30);

for($count = 0; $count < count($data); ++$count){
    if($count < 4){
        if($count % 2 == 0){
            echo "<tr><td>" . $data[$count] . "</td>";
        }else{
            echo "<td>" . $data[$count] . "</td></tr>";
        }
    }else{
        echo "<tr><td>" . $data[$count] . "</td></tr>";
    }
}

Here's the demo

答案 3 :(得分:0)

这样的事情怎么样?

{{1}}