[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 メーリングリストの案内