【问题标题】:How to populate an html table with data from an array in php如何在 php 中使用数组中的数据填充 html 表
【发布时间】:2021-09-02 10:28:40
【问题描述】:

我是 php 新手,我有解决一项任务的问题。

我必须为学校时间表创建 7 小时的空表(持续时间在 1 行) 周一至周五,1 小时持续 45 分钟(15 分钟休息,2 次休息为 20 分钟,5 次休息为 30 分钟)。

我写了这个,但我不知道如何继续。你能帮我吗?

<!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>");

【问题讨论】:

标签: php html arrays netbeans schedule


【解决方案1】:

你有几个问题。

  1. 数组索引从0 开始,而不是1。但通常使用foreach 会更清晰。
  2. 您不应该对数组长度进行硬编码,请使用count()
  3. 变量名称前缺少几个$
  4. 您没有打印来自$times 的时间。它们应在第一天之前作为标题行打印。
  5. 你不应该有$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>");

【讨论】:

  • 非常感谢,这对@Barmar 很有帮助
猜你喜欢
  • 1970-01-01
  • 2014-07-19
  • 1970-01-01
  • 2017-11-06
  • 2023-03-05
  • 1970-01-01
  • 1970-01-01
  • 2016-07-03
  • 2021-09-03
相关资源
最近更新 更多