for( $i = 0; $i < sizeof( $Data ); $i++ ) {
$CSV = ereg_replace( "[\r\n]", "", join( ",", $Data[ $i ] ) ). "\n";
とデータをCSVに書き込み、
abcd,2009,04,30,あいうえお
efgh,2009,06,15,かきくけこ
・・・
xyz,2009,07,09,らりるれろ
となっています。このCSVの日付部分だけを、コンマ区切りでなくハイフンで結び、
abcd,2009-04-30,あいうえお
efgh,2009-06-15,かきくけこ
・・・
xyz,2009-07-09,らりるれろ
としたいのですが、どのようにすれば宜しいでしょうか?
No.5ベストアンサー
- 回答日時:
>>$Dataに入れる時点で年月日をまとめておけるといいのですが
>とありますが、上記の方法に適する良い方法がありますでしょうか?
そうしないといけないわけではありません。
プログラムのほかの箇所がどうなっているか判りませんが、$Dataの年月日を個別に再利用するような場合もあるかもしれませんし。
なので、上記の件はとりあえず忘れてください。
>>単純に判りやすく
>やっておくのが、やはりベターでしょうか
私の場合はそうしています。
直感的でないコードになる場合はコメントをしっかり書くようにしています。メンテナンス性を上げるためですね。
コーディングスタイルは人それぞれなので、自分がやりやすいようにどうぞ。
まだ解決できたわけではありませんが、大変有意義なご示唆を感謝します。
お二人からの回答を参考に、いろいろ工夫をして行けば、正解に辿り着けるのではないかと思って、
一生懸命、取り組んでいるところです。
本当に有難うございました。
No.4
- 回答日時:
$Dataに入れる時点で年月日をまとめておけるといいのですが...
単純に判りやすくやるなら、
$Data = array(array('abcd',2009,7,10,'あいうえお'));
$csv = "";
foreach($Data as $v){
$csv .= vsprintf("%s,%d-%d-%d,%s\n", $v);
}
とか。
itemとmemoにカンマや改行コードが入ることがある場合は別途処理が必要です。
この回答への補足
有難うございます。
ご回答を参考書を参照しながら解読している状態ですので、レスポンスがズレ気味で申し訳ありません。
実はitem はdate()で本当の(?)日付を入れ、2009,04,30,等は、それぞれ<select><option>で選択メニューで入れています。
>$Dataに入れる時点で年月日をまとめておけるといいのですが
とありますが、上記の方法に適する良い方法がありますでしょうか?
>単純に判りやすく
やっておくのが、やはりベターでしょうか?幼稚な質問で重ねて申し訳ありません。
No.3
- 回答日時:
その場合は、
$dt = $year ."-" .$mon ."-" .$day
$Data[$i][item] = $item
$Data[$i][dt] = $dt
$Data[$i][memo] = $memo
の方が配列っぽいです。
それ以前に日付が分かれているのが気になりますが。
この回答への補足
有難うございます。
たどたどしいレスポンスで申し訳ありません。
>それ以前に日付が分かれているのが気になりますが。
とありますが、実は
item はdate()で本当の(?)日付を入れ、2009,04,30,等は、それぞれ<select><option>で選択メニューで入れているのです。ご指導の方法で週末を使ってテストしたいと思っていますが、他に、よりマッチするやり方があればご示唆頂けると有難いです・・・。
まだ解決できたわけではありませんが、大変有意義なご示唆を感謝します。お二人からの回答を参考に、いろいろ工夫をして行けば、正解に辿り着けるのではないかと思って、一生懸命、取り組んでいます。
本当に有難うございました。
No.2
- 回答日時:
$Data配列の段階で、日付が入っている要素に対して変換をかけるのが簡単でしょうね。
$Dataの5番目の要素が日付だとして、
foreach($Data as $k=>$v){
$Data[$k][4] = str_replace(',', '-', $Data[$k][4]);
}
とかですかね。
やり方はいろいろあると思いますが、うまくいかないようならNo.1さんの言うように$Dataの配列の中身のサンプルを書いてみては?
この回答への補足
有難うございます。レスポンスが遅くなり申し訳ありません。
コンマでなくハイフンで
join( "-", $Data[ $i ] )
のようにしたら1個の繋がったレコードになってしまい(当然ですが)いろいろTryしてみたが解決出来ず、遂に質問させて頂いた次第です。
上のやり方で試してみますが、最終目標は、
5個あるコンマ区切りのデータのうち、3,4,5個目のデータをハイフンで繋げたいのです・・・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) データ解析ソフトRでのファイル入力read.csvがエラーになります 7 2022/03/27 22:11
- Excel(エクセル) PowerQueryに詳しい方教えてください(Office365) 1 2022/07/24 21:11
- その他(プログラミング・Web制作) Fortranでの出力ファイル 2 2023/03/21 21:25
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- その他(プログラミング・Web制作) pythonのpandasのcsvの外部結合(outer_join)した際に列が想定とは異なる事象 1 2022/05/25 13:23
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- Visual Basic(VBA) マクロを教えてください。 7 2023/06/01 19:47
- Excel(エクセル) Excelについて教えてください。 帳票データがあります。 アクセスに取り込むため、 データ形式にし 1 2022/06/08 19:59
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列をループでたくさん宣言し...
-
ファイルから指定行数分だけ読...
-
セッション配列の取得の仕方
-
PHPのカッコ[ ]の使い方について
-
チェックボックスが複数選択で...
-
文字列連結パターンが多数ある場合
-
phpでつくるクイズについて
-
phpのSimpleXMLでXMLの要素を参...
-
多次元連想配列のキーを変数で...
-
URLのサブドメインとドメイン部...
-
file_existsでファイル名の部分...
-
$_SESSIONに二次元配列を使える...
-
ExcelVBAのチェックボックスに...
-
入力フォームにおける配列デー...
-
String だと「 ByRef引数の型が...
-
Yahoo API WEB検索の事で!
-
phpmyadminにおける動作速度が...
-
zend_dbについて
-
多次元配列から任意の配列を取...
-
PHP 配列の添字に変数は使えない?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
$_SESSIONに二次元配列を使える...
-
file_existsでファイル名の部分...
-
配列をループでたくさん宣言し...
-
foreachのなかで次のキーを参照...
-
String だと「 ByRef引数の型が...
-
PHPのカッコ[ ]の使い方について
-
配列を回すとき、最後の要素だ...
-
配列一致(要素順番は違うが内容...
-
チェックボックス複数選択 mys...
-
漢字のソートについて
-
postgresql関数をつかったレコ...
-
ネストが深い時のforeachはどう...
-
URLのサブドメインとドメイン部...
-
OCI で、SELECT結果行数を取得...
-
【Smarty】foreach関数やsectio...
-
$_POSTを一括してサニタイズし...
-
phpで、連想配列を普通の配列に...
-
チェックボックスが複数選択で...
-
連想配列のprint_rやvar_dump出...
-
PHP 配列の添字に変数は使えない?
おすすめ情報