mysql table:tableexample with the columns(flightnumber,company,datearrive,timeleave,timearrive)
我生成这样的数组:
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
然后我需要将它放在一个html表中:
<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>
答案 0 :(得分:5)
这可能更整洁,但我试图让事情尽可能分开并在整个过程中进行评论,以便您了解其工作原理。这看起来应该可以解决问题:
$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> </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> </td>'; // Leave cell blank
}
}
$html .= '</tr>';
}
$html .= '</table>';
echo $html;
用它制作了一个codepad,不会显示为烦人的表格,但你可以复制它给你的html输出,看看它是什么样的。