###前提・実現したいこと
PHPでCSVにアンケート結果を記録しています.データ形式は
部長,12,20
課長,14,17
社長,11,14
課長,13,20
課長,4,16
部長,3,11
のようになっています.以下,便宜上左から順に「役職」「A値」「B値」と呼称させていただきます.レコードはせいぜい100件程度です.
###発生している問題・エラーメッセージ
役職ごとの「A値の合計」と「B値の合計」と「A値/B値」を出力ししておりA値/B値でソートしています.
したがって
役職 A B A/B
社長 11 14 0.78
課長 31 53 0.58
部長 15 31 0.48
と表示されます.
これを,<table>の形式にしたいと考えています.
theadまで手を付けましたが,PHPの部分で手詰まりを起こしています.
###該当のソースコード
HTML
1 <table> 2 <thead> 3 <tr> 4 <th>役職</th> 5 <th>A値</th> 6 <th>B値</th> 7 <th>A/B</th> 8 9 <?php 10 error_reporting(E_ALL & ~E_NOTICE); 11 $data = file("data.csv"); 12 13 for ($i = 0; $i < sizeof($data); $i++) { 14 $line = explode(",", $data[$i]); 15 $valueA[$line[0]] += $line[1]; 16 $valueB[$line[0]] += $line[2]; 17 } 18 foreach ($valueA as $key => $value) { 19 $valA = $value; 20 $valB = $valueB[$key]; 21 $ratio[$key] = $valA / $valB; 22 } 23 ?> 24 25 <?php 26 arsort($ratio); 27 foreach ($ratio as $key => $value) { 28 echo $key . " " . $valueA[$key] . " " . $valueB[$key] . " " . round($ratio[$key] , 2) . "</br>"; 29 } 30 ?> 31 </table>
###補足
本丸は
echo $key . " " . $valueA[$key] . " " . $valueB[$key] . " " . round($ratio[$key] , 2) . "</br>";
上記の部分です.
echoの中にタグは書けないので困っています.まだ本を片手に勉強中なので,詳しい方から見たらイッシュンだともうのですが……何卒よろしくお願いします.
###追記
以下のようにしてみましたが,500が帰ってきます.なんででしょうか?
PHP
1 <?php 2 arsort($ratio); 3 foreach ($ratio as $key => $value) { 4 echo 5 <tr> 6 <td>$key</td> 7 <td>$valueA[$key]</td> 8 <td>$valueB[$key]</td> 9 <td>round($ratio[$key] , 2)</td> 10 </tr> 11 ; 12 } 13 echo $key 14 ?>
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/10/08 08:32
2016/10/08 08:46