###前提・実現したいこと
csvを読み込み整形し、その整形したものをcsvに出力しグラフ化したい
csvファイルの整形
⑴配列の空要素の削除
⑵下のような形のcsvを使用しているのですが、このような塊が続いているので、ある行より下の削除を行いたいです。
0歳,1歳,2歳,3歳,4歳,5歳,6歳,7歳,8歳,9歳,10歳,11歳,12歳,13歳,14歳,15歳,16歳,17歳,18歳,19歳,20歳,21歳,22歳,23歳,24歳,25歳,26歳,27歳,28歳,29歳,30歳,31歳,32歳,33歳,34歳,35歳,36歳,37歳,38歳,39歳,40歳,41歳,42歳,43歳,44歳,45歳,46歳,47歳,48歳,49歳,50歳,51歳,52歳,53歳,54歳,55歳,56歳,57歳,58歳,59歳,60歳,61歳,62歳,63歳,64歳,65歳,66歳,67歳,68歳,69歳,70歳,71歳,72歳,73歳,74歳,75歳,76歳,77歳,78歳,79歳,80歳,81歳,82歳,83歳,84歳,85歳,86歳,87歳,88歳,89歳,90歳,91歳,92歳,93歳,94歳,95歳,96歳,97歳,98歳,99歳,100歳,101歳,102歳,103歳,104歳,105歳,106歳,107歳,108歳,109歳,110歳,111歳,112歳,113歳,114歳,115歳,116歳,117歳,118歳,119歳,120歳以上,65歳以上,平均年齢
A県23211,01,001,004,,2017/6/1,,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,5,5,3,2,4,1,1,0,2,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,2,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,36.60
B県
23211,01,001,005,,2017/6/1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41.50
C県
23211,01,001,005,,2017/6/1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56.00
⑶グラフ化にchart.jsを使用したいと考えており、このような並びから
A県のX歳 B県のX歳 C県のX歳
↓ ↓ ↓
2225, 3333, 1111
このようにそれぞれの項目のX歳のみの項目で
整形して出力したいのですがどのように行えば良いでしょうか。
###該当のソースコード
php
1<?php 2setlocale(LC_ALL, 'ja_JP.UTF-8'); 3 4$file = 'data1.csv'; 5$data = file_get_contents($file); 6$temp = tmpfile(); 7$csv = array(); 8$key = 0; 9 10fwrite($temp, $data); 11rewind($temp); 12 13 14$f = fopen("test.csv", "w"); 15 16 17$delete_column = array(0,4,8,5,11); 18 19while (($data = fgetcsv($temp, 0, ",")) !== FALSE) { 20 21 22 foreach($delete_column as $col_num){ 23 24 unset($data[$col_num]); 25 } 26 27 28 $csv[] = $data; 29} 30 31 32if ( $f ) { 33 34 foreach($csv as $line){ 35 36 37 fputcsv($f, $line); 38 } 39} 40 41fclose($f); 42 43//空要素の削除 44$csv = array_filter($csv); 45 46 47 48print_r($csv); 49 50fclose($temp); 51 52 53//var_dump($csv); 54?> 55
###試したこと
空要素を削除するために
$csv = array_filter($csv);
を使用してみたが結果は変わらなかった
回答1件
あなたの回答
tips
プレビュー