0

我正在尝试在 PHP 中创建一个简单的乘法网格

例如,它应该是 2x2 网格的格式:

0 1 2
1 1 2
2 2 4

我的问题是让它从 0 开始。

到目前为止,这是我的嵌套 for 循环:

 for($i=0;$i<=$_POST['rows'];$i++)
                {
                        echo "<tr>";
                        for($j=0;$j<=$_POST['columns'];$j++)
                        {
                                if($i==0)
                                {
                                        echo "<td>" . 1*$j . "</td>";
                                }
                                else
                                {
                                        $mult = $i * $j;
                                        echo "<td> $mult </td>";
                                }
                        }
                        echo "</tr>";
                }

但它给出了输出:

0   1   2
0   1   2
0   2   4 

我需要适当的 0 列。

4

3 回答 3

1

您获得第一行的方式0 1 2 3是通过 X 轴上的特殊情况。对 Y 轴 ( ) 执行类似的特殊情况$j

if ($i == 0) {
    ... 1 * $j ...
}
else if ($j == 0) {
    ... $i * 1 ...
}
else {
    ... $i * $j ...
}
于 2013-01-29T06:22:16.143 回答
0

我不明白你构建网格的方式。您所需要的只是一个行指示器和乘法的数字,而不是嵌套循环。第二:为什么不从 1 开始,而不是在循环中捕获案例。这将是我的乘法“网格”的变体</p>

<?php
    $rows = $_POST['rows'];
    $number = $_POST['columns'];

    for( $i=1; $i <= $rows; $i++) {
        $mult = $i * $number;
        echo "<tr>
                <td>" . $i.'*'. $j . "</td>
                <td>".$mult."</td>
            </tr>";
    }
?>

这将是一个简单的网格 (x * y) = 结果。如果你想要一个完整的乘法表,它会是这样的:

<?php
    $rows = $_POST['rows'];
    $number = $_POST['columns'];
    echo "<tr><th></th>";
    for( $j=1; $j <= $number; $j++) {
         echo "<th>".$j."</th>";
    }
    echo "</tr>";
    for( $i=1; $i <= $rows; $i++) {
        echo "<tr>";
         echo "<th>".$i."</th>";
         for( $j=1; $j <= $number; $j++) {
                $mult = $i * $j;
                echo "<td>".$mult."</td>";
        }
        echo "</tr>";
    }
?>
于 2013-01-29T06:29:23.570 回答
0

您不仅有$i==0特殊情况,还有$j==0

if($i==0)
{
    echo "<td>" . 1*$j . "</td>";
}
elseif($j==0)
{
    echo "<td>" . $i*1 . "</td>";
}
else
{
    $mult = $i * $j;
    echo "<td> $mult </td>";
}
于 2013-01-29T06:22:39.640 回答