• 締切済み

配列データからHTMLで表を作成

PHPのソースでHTMLの表を作成したいと考えています。 $data[0][0]="01/09"; $data[0][1]="国語"; $data[0][2]="45"; $data[1][0]="01/09"; $data[1][1]="数学" $data[1][2]="85" $data[2][0]="01/08"; $data[2][1]="英語"; $data[2][2]="100"; $data[3][0]="01/08"; $data[3][1]="数学" $data[3][2]="25" $data[4][0]="01/07"; $data[4][1]="英語"; $data[4][2]="98"; $data[5][0]="01/07"; $data[5][1]="国語" $data[5][2]="60" ・ ・(いくつか続く) ・ 上記のような多次元配列から以下のようなHTMLの表を作成したいと 考えています。 ------------------------------------------- 科目  |  01/09  |  01/08  |  01/07  |  ------------------------------------------- 国語  |  45    |        |   60  | ------------------------------------------- 数学  |  85    |   25    |        | ------------------------------------------- 英語   |       |   100   |  98   | ------------------------------------------- ・ ・(幾つか続く) ・ ここで科目は上記以外に存在するとします。(社会や体育) 試験を受けていない科目は何も表示しません。 日付のみソートされて格納されています。 また科目はばらばらに格納されています。 日付についてはまた別に配列がありこれを使用しても構いません。 $hizuke[0] = "01/09" $hizuke[1] = "01/08" $hizuke[2] = "01/07" $hizuke[3] = "01/06" $hizuke[4] = "01/05" ・ ・(幾つか続く)(年をまたぐのは考えなくていいです) ・ 上記のようなデータから表を作成したいのですが ロジックがうまく組めません。 何かいい案ないでしょうか? 助けてください。m(_ _)m

みんなの回答

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

こんなんとか: <? $data[0][0]="01/09"; $data[0][1]="国語"; $data[0][2]="45"; $data[1][0]="01/09"; $data[1][1]="数学"; $data[1][2]="85"; $data[2][0]="01/08"; $data[2][1]="英語"; $data[2][2]="100"; $data[3][0]="01/08"; $data[3][1]="数学"; $data[3][2]="25"; $data[4][0]="01/07"; $data[4][1]="英語"; $data[4][2]="98"; $data[5][0]="01/07"; $data[5][1]="国語"; $data[5][2]="60"; for ( $i = 0; $i < count( $data ); $i++ ){ $it = $data[$i]; $adata[ $it[0] . "t" . $it[1] ] = $it[2]; $cal[ $it[0] ] = 1; $subj[ $it[1] ] = 1; } ?> <table> <tr>科目<td><?= join( '<td>', array_keys( $subj ) ) ?> <? foreach ( array_keys( $cal ) as $r ){ echo '<tr>' , $r; foreach ( array_keys( $subj ) as $c ){ echo '<td align="right">', $adata[ $r . "t" . $c ]; } echo "n"; } ?> </table>

関連するQ&A