2011-06-22 9 views
2

私はこのような配列を持っています。印刷毎年の毎日の結果表

Array (
    [1] => Array (
      [1] => Array ([0] => 12) 
      [2] => Array ([0] => 23) 
      # up to 12. 
    # up to 31. 

これは、配列1から31(各月の可能な日)から、配列1〜12(毎月)の中で実行されます。

Date   January February and so on... to December 
2011-01-01 12  23 

だから、最初の列に遡り、一番上の行が月である:

は、私は次のようになりますHTMLテーブルを作成する必要があります。

このテーブルを作成するにはどうすればよいですか? ヘルプは大歓迎です。

+2

は、すでに試みているものをご提示ください。 –

答えて

1

すべての日付(行)を含み、すべての月(列)で構成される別の配列を含む各行ごとに配列を新しい配列に変換することをお勧めします。

このフォーマットは表示がはるかに簡単です。

Exmaple:

Array (
    [1] => Array (
      [1] => Array ([0] => 12) 
      [2] => Array ([0] => 23) 
      # up to 12. 
    # up to 31. 

アップ、それを変換する必要はありません!のは、その配列に名前を挙げてみましょう:$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>'; 

私はあなた次第上部の見出しを追加しておきます。あなたの配列が$dataと呼ばれていると仮定すると

0

<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] : '&nbsp;'; ?></td> 
     <?php endfor; ?> 
     </tr> 
    <?php endforeach; ?> 
    </tbody> 
</table> 
関連する問題