[PHP-users 26284] Re: 複数のフィールでソートしたい

Seto seto @ 1kg.jp
2005年 7月 25日 (月) 00:50:23 JST


 Setoです。

>ksortを利用して、複数のフィールドをソートしたいのですが、
>どのようにすれば、複数のフィールドをソート出来るのでしょうか?
>
>No,Name,Rank,Dateのフィールドがあり、
>Rank,Dateの順でソートしたいのですが・・・・

RankとDateを固定長の文字列に加工して連結
その値をキーとする配列を作成する

$file[ $Fld3.$Fild4 ] = $data;
// $Fld3, $Fld4は固定長に加工したもの
それをksortする。

>
>今はこのようにしています。
>
>while ($data = fgets($fp, filesize("data.csv")+1)) {
>list($fld1,$fld2,$fld3,$fld4) = explode(",", $data);
>$file[$fld3] = $data;
>}
>ksort($file);
>

それか事前にシェルのsortコマンドで処理しておく。

データを再利用することがあるなら
DBに格納してしまうってのも楽かもしれません。

Junya Seto


PHP-users メーリングリストの案内