如何使用 php 中数组中的数据填充 html table
How to populate an html table with data from an array in php
我是 php 的新人,我有一个任务要解决。
我必须为学校时间表创建空的 table 7 小时(持续时间为 1 行)
周一至周五,1小时持续45分钟(15分钟休息,2次休息20分钟,5次休息30分钟)。
我写了这个,但我不知道如何proceed.Can你能帮我吗?
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html">
<title>Task1</title>
</head>
<body>
<?php
header("Content-Type: text/html; charset=windows-1250");
$days = array('Monday', 'Tuesday', 'Wednesday', 'Thurstday', 'Friday');
$times = array('08:00-08:45','09:00-09:45','10:05-10:50','11:05-11:50','12:05-12:50','13:20-14:05','14:20-15:05');
$rows = 5;
$columns = 7;
$i = 0;
$j = 0;
echo "<table border='1'>";
for ($i = 1; $i <= rows; $i++)
{
echo("<tr>");
for ($j = 1; $j <= columns; $j++)
echo "<td>$days[$i]</td>";
$i += 1;
echo("</tr>");
}
echo("</table>");
你有几个问题。
- 数组索引从
0
开始,而不是 1
。但通常使用 foreach
. 更清楚
- 你不应该 hard-code 数组长度,使用
count()
.
- 您在变量名称前遗漏了几个
$
。
- 您没有打印
$times
的时间。它们应该在第一天之前打印为 header 行。
- 你不应该有
$i = $i + 1;
,因为你会因为 $i++
. 而增加 $i
两次
$days = array('Monday', 'Tuesday', 'Wednesday', 'Thurstday', 'Friday');
$times = array('08:00-08:45','09:00-09:45','10:05-10:50','11:05-11:50','12:05-12:50','13:20-14:05','14:20-15:05');
$columns = count($times);
echo "<table border='1'>";
echo "<tr><th>Day</th>;";
foreach ($times as $time) {
echo "<th>$time</th>";
}
echo "</tr>";
foreach ($days as $day) {
echo("<tr><th>$day</th>");
for ($i = 0; $i < $columns; $i++) {
echo "<td></td>"; // empty fields for each period
}
}
echo "</tr>";
echo("</table>");
我是 php 的新人,我有一个任务要解决。
我必须为学校时间表创建空的 table 7 小时(持续时间为 1 行) 周一至周五,1小时持续45分钟(15分钟休息,2次休息20分钟,5次休息30分钟)。
我写了这个,但我不知道如何proceed.Can你能帮我吗?
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html">
<title>Task1</title>
</head>
<body>
<?php
header("Content-Type: text/html; charset=windows-1250");
$days = array('Monday', 'Tuesday', 'Wednesday', 'Thurstday', 'Friday');
$times = array('08:00-08:45','09:00-09:45','10:05-10:50','11:05-11:50','12:05-12:50','13:20-14:05','14:20-15:05');
$rows = 5;
$columns = 7;
$i = 0;
$j = 0;
echo "<table border='1'>";
for ($i = 1; $i <= rows; $i++)
{
echo("<tr>");
for ($j = 1; $j <= columns; $j++)
echo "<td>$days[$i]</td>";
$i += 1;
echo("</tr>");
}
echo("</table>");
你有几个问题。
- 数组索引从
0
开始,而不是1
。但通常使用foreach
. 更清楚
- 你不应该 hard-code 数组长度,使用
count()
. - 您在变量名称前遗漏了几个
$
。 - 您没有打印
$times
的时间。它们应该在第一天之前打印为 header 行。 - 你不应该有
$i = $i + 1;
,因为你会因为$i++
. 而增加
$i
两次
$days = array('Monday', 'Tuesday', 'Wednesday', 'Thurstday', 'Friday');
$times = array('08:00-08:45','09:00-09:45','10:05-10:50','11:05-11:50','12:05-12:50','13:20-14:05','14:20-15:05');
$columns = count($times);
echo "<table border='1'>";
echo "<tr><th>Day</th>;";
foreach ($times as $time) {
echo "<th>$time</th>";
}
echo "</tr>";
foreach ($days as $day) {
echo("<tr><th>$day</th>");
for ($i = 0; $i < $columns; $i++) {
echo "<td></td>"; // empty fields for each period
}
}
echo "</tr>";
echo("</table>");