【发布时间】:2015-07-25 02:21:31
【问题描述】:
我正在尝试为自己制定一个简单的教学计划,但卡在了我的数组的输出上。
这是 PHP:
echo '<table><thead><tr><th>Period</th><th>1</th><th>2</th><th>3</th>th>4</th><th>5</th><th>6</th><th>7</th><th>8</th><th>9</th></tr>';
echo '<tr><th>Time</th><th>08:50</th><th>09:40</th><th>10:30</th><th>11:20</th><th>12:10</th><th>13:00</th><th>13:50</th><th>14:40</th><th>13:30</th></tr>';
echo '</thead><tbody>';
$results = $db->mysql->query("SELECT * FROM schedule");
if ($results->num_rows) {
while ($row = $results->fetch_assoc()) {
$days[$row['day']][$row['period']] = $row['classroom'];
} // close days while
foreach ($days as $key => $val) {
echo '<tr><td>' . $key .
'</td>';
foreach ($val as $item) {
echo '<td>' . $item .
'</td>';
}
echo '</tr>';
}
}
echo '</tbody></table>';
这给了我一个这样的数组:
Array
(
[Monday] => Array
(
[1] => m5 biology
[6] => m5 ict
[8] => m6 ict
)
[Tuesday] => Array
(
[3] => m5 biology
[6] => m6 ict
[7] => m6 ict
)
[Wednesday] => Array
(
[1] => m6 biology
[2] => m5 ict
[7] => m5 biology
[8] => m2 ict
)
[Thursday] => Array
(
[1] => m6 biology
)
[Friday] => Array
(
[1] => m6 biology
[6] => m6 ict
)
表格输出如下所示:
...
<tr>
<td>Monday</td>
<td>m5 biology</td>
<td>m5 ict</td>
<td>m6 ict</td>
</tr>
...
我希望输出包含空闲时段的空表格单元格。在星期一的示例中,只有周期 1、6、8 的数据,因此它只显示这些单元格。
如何让此代码也输出 2、3、4、5、7、9 周期的空单元格?像这样:
...
<tr>
<td>Monday</td>
<td>m5 biology</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td>m5 ict</td>
<td> </td>
<td>m6 ict</td>
<td> </td>
</tr>
我想过在 foreach 中使用 if 语句,但我不知道我需要建立什么样的关系。
任何帮助将不胜感激。
【问题讨论】:
-
有很多选择。您可以更改 PHP,也可以更改 SQL...,甚至两者都更改。我知道我不会在
foreach中使用if,因为那时您不妨改用for。
标签: php arrays html-table