我有一个看起来像这样的数组。
Array (
[1] => Array (
[1] => Array ([0] => 12)
[2] => Array ([0] => 23)
# up to 12.
# up to 31.
它从数组1到31(每月的每个可能日期)运行,然后在数组1-12(每个月)内运行。
我需要创建一个HTML表格,如下所示:
Date January February and so on... to December
2011-01-01 12 23
因此,第一列和第一行的日期是月份。
我可以创建此表的最佳方法是什么? 非常感谢帮助。
答案 0 :(得分:1)
最好的方法是将数组转换为包含所有日期(行)的新数组,并且每行包含另一个包含所有月份(列)的数组。
这种格式更容易显示。
〔实施例:
Array (
[1] => Array (
[1] => Array ([0] => 12)
[2] => Array ([0] => 23)
# up to 12.
# up to 31.
Ups,无需转换它!让我们为该数组命名:$dates
:
echo '<pre>';
foreach($dates as $rowIndex => $row) {
printf('Row header (%2d):', $rowIndex);
foreach($row as $col) {
printf('%-10s', $col);
}
printf("<br>\n")
}
echo '</pre>';
我将标题添加到您的上方。
答案 1 :(得分:0)
假设您的数组名为$data
:
<table>
<thead>
<th>Date</th>
<th>January</th>
<th>February</th>
<th>March</th>
<th>April</th>
<th>May</th>
<th>June</th>
<th>July</th>
<th>August</th>
<th>September</th>
<th>October</th>
<th>November</th>
<th>December</th>
</thead>
<tbody>
<?php foreach ( $data as $key => $value ): ?>
<tr>
<th><?php echo date('Y-m-d', mktime(0, 0, 0, (int)date('m'), (int)$key)); ?></th>
<?php for ( $i = 1; $i <= 12; $i++ ): ?>
<td><?php echo ! empty($value[$i][0]) ? $value[$i][0] : ' '; ?></td>
<?php endfor; ?>
</tr>
<?php endforeach; ?>
</tbody>
</table>