指定数量的Php乘法表

时间:2016-08-07 23:41:37

标签: php loops for-loop while-loop

我有一个创建脚本的任务,该脚本将仅为指定的数字输出乘法表。要创建常规乘法表,例如10x10,我们会写这样的东西:

echo "<table border=\"1\">";

        for ($r =0; $r < $rows; $r++){

            echo'<tr>';

            for ($c = 0; $c < $cols; $c++)
                echo '<td>' .$c*$r.'</td>';
           echo '</tr>'; // close tr tag here

        }

  echo"</table>";

但我应该收到的输出,例如数字&#34; 3&#34;,应该如下所示:

|1 x 1 = 1|1 x 2 = 2|1 x 3 = 3|
| ------- | ------- | ------- |
|2 x 1 = 2|2 x 2 = 4|2 x 3 = 6|
|3 x 1 = 3|3 x 2 = 6|3 x 3 = 9|

任何人都知道如何使用php(while和/或for)循环回应这个?

1 个答案:

答案 0 :(得分:2)

听起来您想要输出计算文本以及结果,例如1 x 3 = 3。你错过了输出。

此外,您需要在for而不是1开始0循环,否则您会得到我认为您不想要的0 x 0 = 0。您可以在<=循环的条件下使用<而不是for来补偿迭代的丢失,因此您仍然可以获得3次迭代(在此示例中)。

试试这个:

echo '<table border="1">';
for ($r = 1; $r <= $rows; $r++) {
    echo '<tr>';
    for ($c = 1; $c <= $cols; $c++) {
        echo sprintf('<td>%d x %d = %d</td>', $r, $c, $c * $r);
    }
    echo '</tr>'; // close tr tag here
}
echo '</table>';

您的预期输出似乎也表明第一行应该是标题。这样做对我来说似乎很奇怪,但如果那个 的话,你需要这样做:

$cellType = ($r === 1) ? 'th' : 'td'; // use <th> for the first row, otherwise <td>
echo sprintf('<%s>%d x %d = %d</%s>', $cellType, $r, $c, $c * $r, $cellType);