我想在PHP中创建一个包含33个员工编号和33个员工工资的表。我的代码中显示了使用ran()
设置的每个数字。当我运行我的代码时,所有信息都出现在33列和两行中,而不是两列和33行。我该如何解决这个问题?
这是我的代码:
<? php
print "<table border ='2'><br /> ";
print "<tr>";
for ($i = 1; $i <= 33; $i = $i + 1) {
$staffnumber = rand(100000, 600000);
print "<th>$staffnumber";
}
print "<tr>$i";
for ($j = 1; $j <= 33; $j = $j + 1) {
$staffsalary = rand(14000, 40000);
print "<th>$staffsalary";
}
print "<tr>$j";
print "</tr></table>";
?>
答案 0 :(得分:0)
试试这个:
print "<table border ='2'><br /> ";
for ($i = 1; $i <= 33; $i = $i + 1) {
print "<tr>";
$staffnumber = rand(100000, 600000);
print "<td>$staffnumber</td>";
$staffsalary = rand(14000, 40000);
print "<td>$staffsalary</td>";
print "</tr>";
}
print "</table>";
?>
你不需要2个循环,因为它们具有相同的迭代次数
答案 1 :(得分:0)
首先,确定您的表结构。如果您不熟悉标记,则应花一点时间对其进行审核(这非常简单):http://www.mountaindragon.com/html/tables2.htm
<table border="2">
<thead>
<th>Number</th>
<th>Salary</th>
</thead>
<tbody>
<!--- Iterate over this sequence -->
<tr>
<td>1</td>
<td>12345</td>
</tr>
<!-- End iteration -->
</tbody>
</table>
然后,找到重复的部分,并将其放入循环中:
注意:
$i++
循环使用for
语法(而不是$i = $i +
。它做同样的事情,但大多数人使用$i++
。<td>
标记之外的内容中添加内容。..
<tr>
答案 2 :(得分:0)
<?php
$data = array();
for($i=0; $i<33; $i++) {
$num = rand(1,10);
$sal = rand(1,10);
$data[] = array($num, $sal);
}
echo render_table($data);
function render_table(array $data) {
$html = "<table>\n";
foreach ($data as $row) {
$html .= " <tr>\n";
foreach ($row as $cell) {
$html .= " <td>$cell</td>\n";
}
$html .= " </tr>\n";
}
$html .= "</table>\n";
return $html;
}