- ベストアンサー
PHPで多次元配列を使ってテーブルを表示する方法
- PHPで多次元配列を使ってテーブルを表示する方法について教えてください。
- テーブルのデータは、SHOPとITEMという2つの配列で管理しています。
- 新しく追加された項目を表示するためには、SHOP配列にSTATION情報を追加する必要があります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。はじめまして。 ちょっと同環境を作ってやってみました。 コメントを参考にしていただければと思います。 $sql="SELECT `ID`,`SHOPNAME`, `STATION` FROM `SHOP`"; $res = mysql_query($sql,$link); while ($rows = mysql_fetch_assoc($res)) { // 多次元配列に格納する $SHOP[$rows["ID"]]['SHOPNAME']=$rows["SHOPNAME"]; $SHOP[$rows["ID"]]['STATION']=$rows["STATION"]; } $sql="SELECT `ID`,`ITEMNAME` FROM `ITEM`"; $res = mysql_query($sql,$link); while ($rows = mysql_fetch_assoc($res)) { $ITEM[$rows["ID"]]=$rows["ITEMNAME"]; } foreach($SHOP as $key1=>$val1){ foreach($ITEM as $key2=>$val2){ $LINK[$key1][$key2]=" "; } } $sql="SELECT `SHOP`,`ITEM` FROM `LINK`"; $res = mysql_query($sql,$link); while ($rows = mysql_fetch_assoc($res)) { $LINK[$rows["SHOP"]][$rows["ITEM"]]="○"; } print<<<eof <table border> <thead> <tr> <th> </th> <th>STATION</th> eof; foreach($ITEM as $key2=>$val2){ print "<th>$val2</th>"; } print<<<eof </tr> </thead> <tbody> eof; foreach($SHOP as $key1=>$val1){ print "<tr>"; // ショップ名と駅名を表示する print "<td>$val1[SHOPNAME]</td><td>$val1[STATION]</td>"; foreach($ITEM as $key2=>$val2){ print "<td>{$LINK[$key1][$key2]}</td>"; } print "</tr>"; } print<<<eof </tbody> </table> eof;
お礼
はじめまして。 回答ありがとうございます! 無事依頼どおりのデータを表示することができました。 わかっているようでわかっていなかった、多次元配列の考え方を実感することができて感激です。 ほんとうに助かりました!!ありがとうございます。