CSVを読み込んで出力することには成功しました。
色々試してみましたが任意の場所に出力できず悩んでいます。何卒ご教授いただければと存じます。
php
<?php $lines = file('csv/sample.csv'); foreach($lines as $line){ $data = explode(",",$line); echo '<table>'; if(empty($data[1])){ echo '<thead><tr><th colspan="2">'.$data[0].'</th><th colspan="2">'.$data[2].'</th></tr></thead>'; }else{ echo '<tbody>'; foreach($lines as $line){ if($uni%2==0){ echo '<tr><th>'.$data[1].'</th><td>'.$data[2].'</td>'; }else{ echo '<th>'.$data[1].'</th><td>'.$data[2].'</td></tr>'; } $uni+=1; } } echo '</tbody></table>'; } ?>
大カテゴリ(弁当名)の中に中カテゴリ(各おかず)があるイメージです。
if(empty($data[1]))
で、データ[1]に値がないときは大カテゴリ名を表示、値があるときは中カテゴリ名を表示させています。
foreachの中でforeachを使って見ましたが、すべてのデータが出力されてしまい、うまく行きません。(コードを見れば当たり前ですが・・)
どうすればよいのか分かりません。
お忙しいところ恐れ入りますが、お知恵を拝借できればと存じます。
読み込んでるCSV
幕内弁当,,400kcal 幕内弁当,焼き鮭,120kcal 幕内弁当,ごはん,220kcal 幕内弁当,ひじき,40kcal 焼肉弁当,,920kcal 焼肉弁当,豚肉,320kcal 焼肉弁当,ごはん,220kcal 焼肉弁当,パスタ,90kcal 焼肉弁当,お漬物,30kcal のり弁,,600kcal 三色弁当,,600kcal
理想はこんな形です。色など装飾は無視してくださいm(_ _)m
試してみたコード
<?php $lines = file('csv/sample.csv'); $first = 1; foreach($lines as $line){ $data = explode(",",$line); echo '<table>'; if(empty($data[1])){ if($first == 0) { echo '</tbody></table>'; } echo '<thead><tr><th colspan="2">'.$data[0].'</th><th colspan="2">'.$data[2].'</th></tr></thead>'; $first = 0; }else{ echo '<tbody>'; if($uni%2==0){ echo '<tr><th>'.$data[1].'</th><td>'.$data[2].'</td>'; }else{ echo '<th>'.$data[1].'</th><td>'.$data[2].'</td></tr>'; } $uni+=1; } } echo '</tbody></table>'; ?>
幕内弁当なら幕内弁当の具材も込みで1つのテーブルになると助かります!
回答2件
あなたの回答
tips
プレビュー