PHPを学習中です。CSVを多次元化して最後はセッションに格納し、自由に他のページでもそのセッションを読み込めるようにしたいです。
CSVの中身はコード名、商品名、値段、在庫数になっています。
while(!eof($f_pt)){
$data=fgets($f_pt);
$data=rtrim($data);
$str=explode(",",$data);
$str[0]=array($str[1],$str[2],$str[3]);
}
こんな風にひとまずコードに格納してwhileで回せばいいのかな??っと苦戦しています。
そしてセッションにしたあとforeachでどうやって配列で表示すればいいかわかりません。。。
アドバイス等頂けたら幸いです。よろしくお願いします。
No.2ベストアンサー
- 回答日時:
>学校の授業で習っていない関数はなるだけ使わず学習したいです。
なるほどねぇ
とはいえfeof()を習ってて、fgetcsv()を習ってないというのは
いかにも中途半端な気がしますが・・・
ご提示のソースを見るにいろいろ問題があります。
>while(!eof($f_pt)){
eof→feofですね
>$data=rtrim($data);
行末の改行マークを削除しているつもりでしょうけど
スペースやタブなどもなくなっちゃいますね
>$str=explode(",",$data);
csvだけにデリミタ(区切り文字)を「,」としているのはわかります
エンクロージャ(囲み文字)は指定していないのでしょうか?
それとexplode()の結果を$strという変数で受けるのもあまり
美しくないですね。戻り値は配列ですから
>$str[0]=array($str[1],$str[2],$str[3]);
これはデータ構造を理解していないと思います。
元のソースを活かすとして総じてこんな感じでしょうか?
<?PHP
$fname="test.csv";
$datas=array();
$f_pt=fopen($fname,"r");
while (($temp_line = fgets($f_pt, 4096)) !== false) {
$temp_line=str_replace(array("\r","\n"),"",$temp_line);
$temp_array=explode(",",$temp_line);
$datas[]=$temp_array;
}
var_dump($datas);
?>
No.1
- 回答日時:
str_getcsv()でチャレンジしてみてください
http://www.php.net/manual/ja/function.str-getcsv …
ちなみにfgetcsv()でもいけますが、多少煩雑になります
http://www.php.net/manual/ja/function.fgetcsv.php
お返事ありがとうございます^^
申し訳ございません。なるだけ学校の授業で習っていない関数はなるだけ使わず学習したいです。
そちらを使わずにする方法も出来れば教えて頂けませんでしょうか?よろしくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- その他(プログラミング・Web制作) Python - Excel で Webからデータを連続取得したいのですが エラーが出ます 1 2023/07/06 20:08
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- その他(プログラミング・Web制作) python質問 1 2023/08/14 11:54
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# pythonのファイルの並びでの読み込みとリストについて 4 2022/04/13 03:52
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語でCSVファイルの行数を読...
-
stdClass Objectを連想配列のよ...
-
複数ファイルで、それぞれの行...
-
別ファイルの構造体の値を読み...
-
変数で来た指定日に対して、+3...
-
CSVデータの行数カウントをした...
-
stream_get_contentsの代替関数
-
エラーメッセージ(無効な間接...
-
PHPのfputcsv を使わずにCSVに...
-
自動で番号を振りたい
-
PHPでCSVの一部の行を編集したい
-
マッチング処理(1:N)
-
foreachのなかで次のキーを参照...
-
特定の文からメールアドレスの...
-
ファイルの逆読みってできますか?
-
プログラミングのPythonのnoteb...
-
スカラーのベクトル微分
-
CArrayの要素としてCStringArra...
-
PHPで変数名にハイフンを使うに...
-
配列を回すとき、最後の要素だ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数行のデータのPOST処理に関して
-
Resource id #3 と表示されま...
-
別ファイルの構造体の値を読み...
-
バイナリファイルの内容を、そ...
-
PHPでCSVの一部の行を編集したい
-
CSVファイルの最終行のデー...
-
ヒアドキュメントの中のfor文
-
stdClass Objectを連想配列のよ...
-
◆速い、ファイル読み込みは?
-
C言語でCSVファイルの行数を読...
-
phpでCSVファイルの中身を多次...
-
rubyで複数列のデータを一行に...
-
多次元配列の一次元目の最大値...
-
行数が30万件ほどあるCSVから、...
-
配列同士の足し算のループ処理
-
FortranのOPEN文
-
自動で番号を振りたい
-
csvの内容を行単位で削除したい
-
CSVデータの行数カウントをした...
-
While文を使って配列の中身を全...
おすすめ情報