最后一个问题没有得到很好的回答,所以我做了更多的阅读,并提出了一个简单的php程序,可以接受用户对行和列数的输入。一个表是使用嵌套while循环生成的,我知道"For"循环更适合这种情况,并使用它来工作。努力学习,变得更好,所以我也想弄清楚这一点。我只得到一行,没有列。我还希望迭代生成与示例类似的行和列。有点沮丧的是,for循环最终更容易弄清楚。
W,row1,col1; W,row1,col2; W,row1,col3
W,row2,col1; W,row2,col2; W,row2,col3 etc...
php代码:
<?php
if(isset($_GET['rows'])) {
$r = 1;
$c = 1;
$rows = 5;
$cols = 6;
while ($r <= $rows) {
echo '<tr>';
while($c <= $cols) {
echo '<td>W, '.'row' .$r.',col'.$c.';</td>';
$c++;
}
echo '</tr>';
$r++;
}
?>
您永远不会更改在while
条件下测试的变量,因此循环是无限的。每次都需要递减变量。
并且您需要在每个内部循环之前重新初始化$cols
。否则,在外循环的第一次迭代之后,结束条件将已经满足。
$count = 1;
$rows = $_REQUEST['rows'];
//while loop to create table
while ($rows-- >= 1) {
echo '<tr>';
$cols = $_REQUEST['cols'];
while ($cols-- >= 1) {
echo '<td>W,row1,col1;</td>';
$count++
}
echo '</tr>';
}
YOu可以这样做:
if(isset($_GET['rows'])) {
//Create counters
$count = 1;
$rows = $_REQUEST['rows'];
$cols = $_REQUEST['cols'];
//for loop to create table
for($i=1;$i<=$rows;$i++){
echo '<tr>';
for($j=1;$j<=$cols;$j++){
echo '<td>W,'.'row'.$i.',col'.$j.';</td>';
}
echo '</tr>';
}
}