- ベストアンサー
CSVに追加データを挿入したいです。
この前質問したばかりなのですが、別の質問させてください。 数日頑張ったのですがどうしても出来なくて… やりたいこと ↓のようなものが書かれてあるCSVファイルがあります。 服 トップス 服 ボトムス 服 ブランド このCSVファイルに、 服 トップス なら01&01_01 服 ボトムス なら01&01_02 服 ブランド なら01&01_03 という情報を1列目に付け足したいです。 そこで、以下の配列を作り、 $data array("01&01_01" => "トップス", "01&01_02" => "ボトムス", "01&01_03" => "ブランド") csvファイルの、「服 トップス」をexplodeで分けました。 $log = "list.csv"; # ログ名 $lines = file("$log"); foreach ($lines as $l) { $line = explode(",",$l); $push = $line[0].",".$line[1].",".$line[2].",".$line[3].",\n"; $cate = explode(" ",$line[2]); # $line[2]は、上記の「服 トップス」というデータを挿入しています。 $catea = $cate[1]; # サブカテゴリ名を格納 $cate[1]=トップス foreach($data as $key => $value){ if($value == $catea){ $LOG[$catea] .= $key.",".$push."\n"; # カテゴリ情報を追加したcsvデータを1行ずつ保存 } } foreach($LOG as $keys => $values){ $file = fopen("list2.csv", 'w'); # カテゴリ情報を追加したcsvデータを書き込み fwrite($file, $values); fclose($file); } すると、foreach($LOG as $keys => $values){ の部分でforeachエラーが出ます。 根本的に記述が間違っているのでしょうか。 お手数かけますが、ご指南よろしくお願いします<(_ _)>
- みんなの回答 (3)
- 専門家の回答
お礼
できました<(_ _)> 出力方法に問題があったのですね… オプションをwにしているから毎回上書きされてしまっていたんですね。 とても勉強になりました。ソースもきれいにしていただいてとてもありがたいです。 もう質問しなくて済むように今後も勉強していきたいと思います。 質問に答えてくださった方、本当にありがとうございました。