用php创建html表

用php创建html表,php,html,mysql,arrays,Php,Html,Mysql,Arrays,我被困在这里面了: mysql表:带有列的表示例(flightnumber、company、DateArrival、timeleave、TimeArrival) 其中我生成如下数组: Array[0] - Array[0][1] => 1000 - Array[0][2] => Company A - Array[0][3] => 2014-05-10 - Array[0][4] => 10:00:00 - Array[0][5] => 15:00:00

我被困在这里面了:

mysql表:带有列的表示例(flightnumber、company、DateArrival、timeleave、TimeArrival)

其中我生成如下数组:

Array[0]

 - Array[0][1] => 1000
 - Array[0][2] => Company A
 - Array[0][3] => 2014-05-10
 - Array[0][4] => 10:00:00
 - Array[0][5] => 15:00:00  

Array[1]

 - Array[1][1] => 2000
 - Array[1][2] => Company A
 - Array[1][3] => 2014-05-11
 - Array[1][4] => 10:00:00
 - Array[1][5] => 15:00:00  

Array[2]

 - Array[2][1] => 3000
 - Array[2][2] => Company B
 - Array[2][3] => 2014-05-10
 - Array[2][4] => 10:00:00
 - Array[2][5] => 15:00:00  

Array[3]

 - Array[3][1] => 4000
 - Array[3][2] => Company B
 - Array[3][3] => 2014-05-11
 - Array[3][4] => 16:00:00
 - Array[0][5] => 19:00:00  
<p>....................| 2014-05-10|2014-05-11 |</p>
<p>10:00:00 - 15:00:00 | Company A |...........|</p>
<p>10:00:00 - 15:00:00 | Company B | Company A |</p>
<p>16:00:00 - 19:00:00 | ..........| Company B |</p>
然后我需要将其放在html表中:

Array[0]

 - Array[0][1] => 1000
 - Array[0][2] => Company A
 - Array[0][3] => 2014-05-10
 - Array[0][4] => 10:00:00
 - Array[0][5] => 15:00:00  

Array[1]

 - Array[1][1] => 2000
 - Array[1][2] => Company A
 - Array[1][3] => 2014-05-11
 - Array[1][4] => 10:00:00
 - Array[1][5] => 15:00:00  

Array[2]

 - Array[2][1] => 3000
 - Array[2][2] => Company B
 - Array[2][3] => 2014-05-10
 - Array[2][4] => 10:00:00
 - Array[2][5] => 15:00:00  

Array[3]

 - Array[3][1] => 4000
 - Array[3][2] => Company B
 - Array[3][3] => 2014-05-11
 - Array[3][4] => 16:00:00
 - Array[0][5] => 19:00:00  
<p>....................| 2014-05-10|2014-05-11 |</p>
<p>10:00:00 - 15:00:00 | Company A |...........|</p>
<p>10:00:00 - 15:00:00 | Company B | Company A |</p>
<p>16:00:00 - 19:00:00 | ..........| Company B |</p>
2014-05-10 2014-05-11|

10:00:00-15:00:00 | A公司||

10:00:00-15:00:00 | B公司| A公司|

16:00:00-19:00:00 | B公司|

我已经:

Array[0]

 - Array[0][1] => 1000
 - Array[0][2] => Company A
 - Array[0][3] => 2014-05-10
 - Array[0][4] => 10:00:00
 - Array[0][5] => 15:00:00  

Array[1]

 - Array[1][1] => 2000
 - Array[1][2] => Company A
 - Array[1][3] => 2014-05-11
 - Array[1][4] => 10:00:00
 - Array[1][5] => 15:00:00  

Array[2]

 - Array[2][1] => 3000
 - Array[2][2] => Company B
 - Array[2][3] => 2014-05-10
 - Array[2][4] => 10:00:00
 - Array[2][5] => 15:00:00  

Array[3]

 - Array[3][1] => 4000
 - Array[3][2] => Company B
 - Array[3][3] => 2014-05-11
 - Array[3][4] => 16:00:00
 - Array[0][5] => 19:00:00  
<p>....................| 2014-05-10|2014-05-11 |</p>
<p>10:00:00 - 15:00:00 | Company A |...........|</p>
<p>10:00:00 - 15:00:00 | Company B | Company A |</p>
<p>16:00:00 - 19:00:00 | ..........| Company B |</p>
用日期填充表格的顶部,但现在我被卡住了

<thead>
   <?php
     echo "<tr>";
     for ($row = 0; $row <  5;) {
       $dia=$array[$row][2];
       echo "<th>Dia " . $dia . "</th>";
       $i=$row;
       for ($rownext = ($row+1); $rownext < 5;){
         if ($array[$rownext][2]==$dia){
             $i++;
         };
         $rownext++;
       };
       $row=($i+1);
      };
      echo "</tr>";
    ?>
</thead>

这可能要整洁得多,但我已尝试将事情尽可能分开,并在整个过程中进行注释,以便您了解它是如何工作的。这看起来应该可以做到:

$details = array(
  1 => array(
      1 => 1000,
      2 => 'Company A',
      3 => '2014-05-10',
      4 => '10:00:00',
      5 => '15:00:00',
  ),
  2 => array(
      1 => 1000,
      2 => 'Company A',
      3 => '2014-05-11',
      4 => '10:00:00',
      5 => '15:00:00',
  ),
  3 => array(
      1 => 1000,
      2 => 'Company B',
      3 => '2014-05-10',
      4 => '10:00:00',
      5 => '15:00:00',
  ),
  4 => array(
      1 => 1000,
      2 => 'Company B',
      3 => '2014-05-11',
      4 => '16:00:00',
      5 => '19:00:00',
  )
);

// Format our data into something we can use more easily
$flight_dates = array();
$times = array();
$dates = array();
foreach ($details as $flight_details) {
  $company_name = $flight_details[2];
  $date = $flight_details[3];
  $time = $flight_details[4] . ' - ' . $flight_details[5];

  // Keep a unique record of each date, and the times of flights
  $dates[$date] = 1;
  $times[$time] = 1;

  // Record which date/time each company is flying
  $flight_dates[$date][$time][] = $company_name;
}

// Create the table header
$html = '<table border="1">';
$html .= '<thead>';
$html .= '<tr>';
$html .= '<th>&nbsp;</th>';
foreach ($dates as $date => $value1) {
  $html .= '<th>' . $date . '</th>';
}
$html .= '</tr>';

// Create the rows in the table
foreach ($times as $time => $value1) { // Loop through each flight time
  $html .= '<tr>';
  $html .= '<td>' . $time . '</td>'; // The first column is always the time
  foreach ($dates as $date => $value2) { // Loop through each date
      if (!empty($flight_dates[$date][$time])) { // Check if flights exist at the current time
        $html .= '<td>' . implode(', ', $flight_dates[$date][$time]) . '</td>'; // List companies
      } else { // No flights
        $html .= '<td>&nbsp;</td>'; // Leave cell blank
      }
  }
  $html .= '</tr>';
}
$html .= '</table>';

echo $html;
$details=array(
1=>数组(
1 => 1000,
2=>“A公司”,
3 => '2014-05-10',
4 => '10:00:00',
5 => '15:00:00',
),
2=>数组(
1 => 1000,
2=>“A公司”,
3 => '2014-05-11',
4 => '10:00:00',
5 => '15:00:00',
),
3=>数组(
1 => 1000,
2=>“B公司”,
3 => '2014-05-10',
4 => '10:00:00',
5 => '15:00:00',
),
4=>数组(
1 => 1000,
2=>“B公司”,
3 => '2014-05-11',
4 => '16:00:00',
5 => '19:00:00',
)
);
//将数据格式化为更易于使用的格式
$flight_dates=array();
$times=array();
$dates=array();
foreach($详细信息作为$flight\u详细信息){
$company_name=$flight_details[2];
$date=$flight_详情[3];
$time=$flight_details[4]。-“$flight_details[5];
//保存每个日期和航班时间的唯一记录
$dates[$date]=1;
$times[$time]=1;
//记录每个公司飞行的日期/时间
$flight\u dates[$date][$time][]=$company\u name;
}
//创建表格标题
$html='';
$html.='';
$html.='';
$html.='';
foreach($dates为$date=>$value1){
$html.=''.$date';
}
$html.='';
//在表中创建行
foreach($times as$time=>$value1){//循环每个飞行时间
$html.='';
$html.=''.$time.';//第一列始终是时间
foreach($dates as$date=>$value2){//循环每个日期
如果(!empty($flight_dates[$date][$time]){//检查当前时间是否存在航班
$html.=''.introde(',',$flight_dates[$date][$time])。';//列出公司
}否则{//没有航班
$html.='';//将单元格留空
}
}
$html.='';
}
$html.='';
echo$html;

用它做了一张桌子,不显示为一张桌子,这很烦人,但是你可以复制它提供给你的html输出,看看它是什么样子。

最大的困难是表格是一行一行的……如果它是在列中,在这种情况下会更容易。向我们展示你是如何填充标题的。我将首先构建一个以时间间隔为键的表格数组。仅供参考,你不需要
}
之后,只要
}
就足够了,只是一个样式:)@mlefevere tks太多了,很棒的代码:)我需要它在每个单元格中放置一个值,因为我正在做一个JS onclick来打开另一页中的记录。但我会从这里得到它。我又犯了很多错误。而且对于虐待@MLeFevre,如果在同一天和同一时间有两家公司,我正试图调整代码,使之随着时间重复这一行,但我遇到了一些问题。。。。还要一点帮助吗?