すみません、超初心者の質問です。
今、エクセルのデータをphpを介してJsonに入れるプログラミングに取り組んでいます。
エクセル
↓
CSV
↓
配列(php)
↓
Json
しかしこのcsvのデータを配列に入れる前に置換しなければならない箇所(具体的には、言葉で入っている文字をコード化したい箇所)が沢山あるのですが、phpで読み込んだcsvデータの文字列を置換する方法はありますか??(置換箇所は多岐に渡ります)
外部から毎月買い取るデータで、いちいちエクセル上で手動で置換するのではなく、PHP上で自動的に置換したいのです。。
愚問ですみません、、よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
'あああ'=>1
'いいい'=>2
'ううう'=>3
というように文字列を数字などのIDみたいに変換したいということでしょうか?
ソレであった場合、IDの含まれる一覧もCSVかなんかで渡すということでしょうか?
毎回のデータ総数が恐ろしい量である、ということではないのであれば、
配列に入れてから処理したほうがやりやすいと思いますがいかがでしょうか。
実際、質問者さんがどのようなロジックで処理するのかが見えないのであれなんですが、
<?php
$replace = array('あ'=>1, 'い'=>2, 'う'=>3);//言葉に対応するコードの連想配列
$result = array();
$fp = fopen('CSVのデータ', 'r');
if(!$fp) exit('開けない');
$line = fgets($fp, 4096);//改行までの1行を取得
$line = rtirm($line); //取得した文字列の最後に改行コードがくっつくのでソレを除去
$line_arr = explode(',', $line); //カンマで文字列を切り分け配列に。
//ここで、もし言葉が記述されているのが2番目(配列のインデックスでいう1)の場合
if(isset($replace[$line_arr[1]])){
$line_arr[1] = $replace[$line_arr[1]];
}
$result[] = $line_arr; //又はarray_push($result, $line_arr);
fclose($fp);
?>
こんな感じでいかがですか?
丁寧なご回答ありがとうございました!
コードを配列に入れるとスマートにいくのですね!なるほどです!
無事解決いたしました。ありがとうございます!!
No.1
- 回答日時:
mb_convert_encoding とかでもいいんじゃないの?
今日は、csvからdnsサーバのゾーンを編集するものを書いてましたが、日本語のコーディングを考えるのは面倒なので、行ごとにmb_convert_encoding で変換しましたね。
わかっているとは思いますが変換するなら配列に入れる前ですよ。
csvのカラム毎に違う漢字コードを使うような変なものでもない限り、ファイル全体か、処理の都合上なら行単位で変換の方が楽です。
丁寧なご回答ありがとうございました!
私の説明が足りず違う内容のお答えを頂きましたが、その後Jsonで文字化け問題が発生したためathanasiusさんのご回答も大変役に立ちました!
ありがとうございました!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Ruby power BI クエリエディター 〇〇を含む文字列置換 1 2022/10/16 17:34
- Visual Basic(VBA) Excel VBA 教えてください。 VBA初心者です。 詳しい方がいましたら教えてください。 下記 3 2023/04/25 11:22
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- その他(ブラウザ) cvsファイルをダウンロードすると、自動で拡張子がExcelのものになる 5 2022/07/20 21:21
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Access(アクセス) CSVファイルの「0落ち」にVBA 6 2023/02/02 15:27
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- Excel(エクセル) 【エクセル関数】アルファベットで以上だったらカウントする 4 2022/07/09 14:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
$_SESSIONに二次元配列を使える...
-
配列をループでたくさん宣言し...
-
漢字のソートについて
-
PHPプログラミング スペースで...
-
○番目から○番目までの取り出し...
-
foreachのなかで次のキーを参照...
-
PHPでgrepする件について
-
配列をmb_ereg_replaceで一気に...
-
OCI で、SELECT結果行数を取得...
-
URLのサブドメインとドメイン部...
-
禁止ワード設定
-
SESSION変数の2次元配列
-
String だと「 ByRef引数の型が...
-
PHPで配列をPOSTデータで送った...
-
配列をほかの配列の値で複数の...
-
プログラミングのPythonのnoteb...
-
スカラーのベクトル微分
-
特定の文からメールアドレスの...
-
C言語の配列をPush(追加)する...
-
stdClass Objectを連想配列のよ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列をループでたくさん宣言し...
-
file_existsでファイル名の部分...
-
foreachのなかで次のキーを参照...
-
$_SESSIONに二次元配列を使える...
-
String だと「 ByRef引数の型が...
-
配列を回すとき、最後の要素だ...
-
配列一致(要素順番は違うが内容...
-
PHPのカッコ[ ]の使い方について
-
ネストが深い時のforeachはどう...
-
チェックボックス複数選択 mys...
-
PHPで配列をPOSTデータで送った...
-
phpで、連想配列を普通の配列に...
-
PHP 多次元配列変数のデータ受...
-
postgresql関数をつかったレコ...
-
SQL文の実行結果を変数で受けて...
-
【PHP】配列内のある値以上をカ...
-
プルダウンメニューでCSVデータ...
-
Smartyのテンプレートからjavas...
-
CSVデータのn番目だけの値を取...
-
PHP 配列の数をn対nの割合で分...
おすすめ情報