[PHP-users 8212] Re: CSVファイルの書式を変換するツール

Sumito_Oda php-users@php.gr.jp
Sun, 23 Jun 2002 18:40:12 +0900


織田%アルゴリズムは不得手 です。

>↑この件ですが、やはりどうしても,,,を上手く追加することができません。
>例えば100番目のデータラインに,,,を商品が20個出てきた場合に
>それまでのデータラインに,,,を20個追加しなければなりません...

","を追加しなければならないのであれば、追加するしかないのでは。

ただ、折角最初の1行目に項目(フィールド)名があるので、
「…,商品1,個数1,商品2,個数2,送料」とせずに
「…,送料,商品1,個数1,商品2,個数2,…」とすれば
前にも書いた様に、末尾にNULLの項目で埋める必要はありませんよね。
CSVでは順番が違っていても、そのデータを読み出して使用する際に
項目名をキーにした配列変数に入れておけば、コードを書く際には
気にならないと思います。

それでもやはり、","を追加しなければならないのなら
データの内容によりますが、商品が増える度にそれまでの
ラインを更新し直すのがいいか、それ以降を先に一度最後まで処理をした後
最終的に商品の数が最大であったものに合わせて頭から全部更新するか、
最初に先ず「同じ顧客」のチェックをして処理をした後、他のラインを
変更する等...アルゴリズム得意じゃないのもっと賢い方法があると思いますけど。
商品の数を最大20(いっそ100でも256でも)などと固定してしまうのも
ひとつの方法です。
(最近は昔ほどメモリや容量を余り考えなくても良くなりましたし)

しかし後々のことを考えるとDB使ってやる方法を取った方が
良いし楽なのではないかと思います。
-- 
織田 澄人(Sumito Oda) / mailto:oda@imasy.or.jp