[PHP-users 30098] Re: 日付別の数値をcsvで出力するには
大塚 哲治
goroneko @ pop17.odn.ne.jp
2006年 8月 20日 (日) 17:08:06 JST
Setoさん、
ご回答ありがとうございます。
なるほど!試してみましたが、かなりのスピードアップがはかれました。
ありがとうございます。
大塚
----- Original Message -----
From: "Seto" <seto @ 1kg.jp>
To: "PHP-users ML" <php-users @ php.gr.jp>
Sent: Sunday, August 20, 2006 12:49 AM
Subject: [PHP-users 30096] Re:日付別の数値をcsvで出力するには
> Setoです。
> 連想配列は多重にできますのでそれを利用して
>
>>1. 素材のGroup byでselectし、配列hairetuにに代入。
>>2. 日付を配列で作っておく。ここではhiduke=("5/10","5/11","5/12","5/13","5/
>>14","5/15")
>>3. hairetuとhidukeで二重ループを行う。
> そこで
> $arr = array();
> foreach ( $hairetu as $valm )
> foreach ( $hiduke as $vald )
> $arr[ $valm ][ $vald ] = 0;
> とか初期化しておいて
>
>
> 4.必要なデータを一括して取得する
> select * from テーブル (必要なら条件節);
>
>
> 5.その結果$resをもとにループさせてループ中にて
> $arr[ $res['素材'] ][ $res['日付'] ] = $res['カウント'];
> とかすれば整理された結果の連想配列が作成できるので
>
> 6.あとはCSVに加工
> $arrCsv = array();
> $arrCsv[] = "\t" . implode( "\t", $hiduke );
> foreach ( $arr as $var=>$val )
> $arrCsv[] = "$var\t".implode( "\t", $val );
>
> とかで出来るのではないかと
>
>
> Junya Seto
PHP-users メーリングリストの案内