• ベストアンサー

HTMLのテーブルにデータを流し込む際のレイアウト

度々、失礼させていただきます。なにぶん見よう見まねです。 「abc.csv」より条件(1)で抽出した後HTMLのテーブルに並べます。 但しこのままですとHTML上、右に伸びていってしまうので4つぐらいで 新しいテーブルに改行したいのですが、お力お貸しください。 <table> <tr> <td> <?php $Data=file("abc.csv"); for($i=0;$i<sizeof($Data);$i++){ $line=explode(",",$Data[$i]); if($line[0]=="0" && $line[1]=="1"){ //条件(1) print "<td><table><tr>\n" ; print "<td>{$line[2]}</td></tr>" ; print "<tr>" ; print "<td>{$line[4]}</td></tr>" ; print "</table></td>\n" ; } } ?> </td> </tr> </table>

質問者が選んだベストアンサー

  • ベストアンサー
  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.2

HTMLがおかしいのですが、それは別問題なのでスルーします。 if($line[0]=="0" && $line[1]=="1"){ //条件(1) #(略) $j++; if (!($j%4)) { print "</tr><tr>"; } とやればいいのではないかと思います。

seaweed5000
質問者

お礼

ありがとうございました! HTMLも直したらうまく動きました。

その他の回答 (2)

  • funaho
  • ベストアンサー率58% (43/74)
回答No.3

こんな感じでどうでしょう。 <table> <tr> <?php $Data=file("abc.csv"); $j=0; for($i=0;$i<sizeof($Data);$i++){ $line=explode(",",$Data[$i]); if($line[0]=="0" && $line[1]=="1"){ //条件(1) if($j==4){ $j=0; print "</tr><tr>\n"; } print "<td><table><tr>\n"; print "<td>".$line[2]."</td></tr>"; print "<tr>"; print "<td>".$line[4]."</td></tr>"; print "</table></td>\n"; $j++; } } ?> </tr> </table>

seaweed5000
質問者

お礼

ありがとうございました! この書き方もあるのですね。 勉強になりました。

  • STICKY2006
  • ベストアンサー率29% (1536/5269)
回答No.1

こんちくわ。 >>新しいテーブルに改行したいのですが の意味がイマイチ分かりませんが。。。 とりあえず、改行できりゃ問題ないと受け取ります。 「abc.csv」から抽出したものの文字数かバイト数のどちらかを調べて、何文字、もしくは何バイトかしたら改行。でやってやればいいかと。 PHPの知識は無いですが、関数で何かないですか? LenBとかLengthとか。。。