レポートで使用するには、CSVファイルからデータを取得する必要があります。ただし、エクスポートするソフトウェアには、有用な形式でエクスポートする機能がありません。PHPを使用して、次のようなデータを含むCSVファイルを取得したいと思います。
'Time','Month And Year','Count'
'8 Hours','Apr 2011','127'
'6 Hours','Apr 2011','45'
'4 Hours','Apr 2011','23'
'2 Hours','Apr 2011','122'
'8 Hours','Dec 2010','29'
'6 Hours','Dec 2010','8'
'4 Hours','Dec 2010','1'
'2 Hours','Dec 2010','64'
etc...
そしてそれをこれに変えてください:
Time,Dec 2010,Jan 2011,Feb 2011,Mar 2011,Apr 2011,May 2011
8 Hours,126,47,115,77,127,110
6 Hours,45,18,62,38,42,31
4 Hours,23,3,11,8,15,18
2 Hours,122,93,185,144,128,70
現時点では、fgetcsv()を使用してCSVファイルを開き、不要な文字を削除するコードがあります。
$lines = array();
$tempName = array();
$tempCount = array();
$tempTitle = array();
$items = array();
$fp = fopen('../data/data2.csv','r') or die("can't open data2.csv");
while($lines = fgetcsv($fp,4096,"\\n")) {
for ($i = 0, $j = count($lines); $i < $j; $i++) {
$lines[$i] = str_replace('\'', '', $lines[$i]);
$lines[$i] = str_replace('A: ', '', $lines[$i]);
$lines[$i] = str_replace('B: ', '', $lines[$i]);
$lines[$i] = str_replace('C: ', '', $lines[$i]);
$lines[$i] = str_replace('D: ', '', $lines[$i]);
}
}
fclose($fp) or die("can't close volume2.csv");
これにより、CSVファイルの行がコンマ区切りの行に格納され、$lines配列は次のようになります。
Time,Month And Year,Count
8 Hours,Apr 2011,127
6 Hours,Apr 2011,45
4 Hours,Apr 2011,23
2 Hours,Apr 2011,122
8 Hours,Dec 2010,29
6 Hours,Dec 2010,8
4 Hours,Dec 2010,1
2 Hours,Dec 2010,64
etc...
次に、データをCSVファイルにエクスポートして戻すことができるように、データを1つ以上の配列内に正しい順序で格納する必要があります。
私は使ってみました:
for ($h = 0, $k = count($lines); $h < $k; $h++) {
$items = preg_split("/[,]+/",$lines[$h]);
}
次に、caseステートメントを使用して正しいデータを配列に配置しますが、ハングアップするため、何か間違ったことをしている必要があります。(言うまでもなく、このコードは最適化されていません。)
ここからどこに行けばいいのか、何かアイデアはありますか?ありがとう!