对于PHP中的循环表

时间:2014-04-01 13:30:01

标签: php

我正在尝试使用php for循环生成一个表,列出数字。像这样:

1 | 2 | 3 | 4 | 5
2 | 3 | 4 | 5 | 1
3 | 4 | 5 | 1 | 2
4 | 5 | 1 | 2 | 3
5 | 1 | 2 | 3 | 4

我仍然遇到问题,这实际上非常简单,但我无法解决它。到目前为止,我有以下代码:

<?php
echo "<table border='1'><br />";

for ($row = 0; $row < 5; $row ++) {
   echo "<tr>";

   for ($col = 1; $col <= 4; $col ++) {
        echo "<td>", ($col + ($row * 4)), "</td>";
   }

   echo "</tr>";
}

echo "</table>";
?>

但是,这只会产生以下结果:

1  | 2  | 3  | 4 
5  | 6  | 7  | 8
9  | 10 | 11 | 12
13 | 14 | 15 | 16
17 | 18 | 19 | 20

谢谢,任何帮助将不胜感激!

5 个答案:

答案 0 :(得分:16)

<?php
echo "<table border='1'><br />";

for ($row = 0; $row < 5; $row ++) {
   echo "<tr>";

   for ($col = 0; $col < 5; $col ++) {
        echo "<td>", (($col + $row) % 5) + 1, "</td>";
   }

   echo "</tr>";
}

echo "</table>";
?>

答案 1 :(得分:6)

echo "<table border='1'><br />";
for ( $i = 0; $i < 5; $i++ ) {
    echo "<tr>";
    for ( $j = 0; $j < 5; $j++ ) {
        echo "<td>", ($j+$i)%5+1, "</td>";
    }
    echo "</tr>";
}
echo "</table>";

答案 2 :(得分:3)

我的版本:

<?php
echo "<table border='1'><br />";
$i=1;
for ($row = 0; $row < 5; $row ++) {
  echo "<tr>";
  $cont = 0;
for ($col = $i; $col <= 5; $col ++) 
    {
     echo "<td>", ($col), "</td>";
     $cont++;
    }
if($cont < 5)
{
 for($col = 1; $col <= 5 - $cont; $col++)
 {
  echo "<td>", ($col), "</td>";
 }
 }

echo "</tr>";
$i++;
}

echo "</table>";

键盘:http://codepad.viper-7.com/JZogNY

答案 3 :(得分:2)

我的版本

<?php
echo "<table border='1'><br />";

for ($row = 0; $row < 5; $row ++) {
   $k=$row;

   for ($col = 0; $col < 5; $col ++) {
        echo "<td>", (($k++)%5)+1, "</td>";
   }

   echo "</tr>";
}

echo "</table>";
?>

答案 4 :(得分:0)

<?php

    echo '<table border="1">';
    $i = 0;
    for($i =1; $i<=5; $i++){
        echo '<tr>
            <td>'.$i.'</td>';
            $x = 0;
            for($x=1; $x<=4; $x++){
                $y = $x + $i;
                $z = ($y>5) ? $y-5 : $y;
                echo '<td>'.$z.'</td>';
            }
        echo '</tr>';
    }

    echo '</table>';
?>