概要

CSV (Comma-Separated Values) は 実務で最もよく出会うデータ形式 の 1 つ。Excel・Google スプレッドシート・DB のエクスポート・ログ・売上データなど、外部から渡されるデータはほぼこの形になる。CSV を PHP で扱う基本は「1 行ずつ標準入力で受け取り、explode(",", $line) でカンマ区切りに分解し、2 次元配列に組み立てる」というシンプルな流れだ。

組み立ての骨格は $rows = []; for ($i = 0; $i < $n; $i++) { $line = trim(fgets(STDIN)); $rows[] = explode(",", $line); }1 行読む → カンマで分割 → 2 次元配列に追加 を行数分くり返すだけ。trim で末尾の改行を取り除いてから explode するのがコツで、これを忘れると最後の要素に \n が混ざって数値変換に失敗するなどの しょっぱい事故 が起きる。要素を数値として扱いたいときは (int) などで明示的にキャストする。

2 次元配列に組み上がれば、あとは ch04〜ch07 で扱った 入れ子 foreach / 行合計 / 列合計 の手法がそのまま使える。ドリル 02 では「CSV → 2 次元配列 → 各列の合計」というパイプラインを通して、ばらばらに見えた章の知識が 1 本の処理として繋がる ことを体感する。これが「実務で動く PHP」の入口で、ここまで来れば自分でレポート集計スクリプトが書けるレベルになる。

学習目標

ドリル

no 内容
01 CSV 入力を 2 行 3 列の配列にして表形式で出力
02 CSV 入力を 2 次元配列にして各列の合計を出力

演習: ドリル 01 — CSV を 2 次元配列にして表形式で出力

問題

標準入力で次のような CSV (2 行 3 列) が与えられます。

入力例:

a,b,c
1,2,3

これを explode で 2 次元配列に組み立て、各行を 空白区切り で 1 行に出力してください。

期待される出力:

a b c
1 2 3

ヒント

演習: ドリル 02 — CSV を読んで各列の合計を出力

問題

標準入力で次のような数値 CSV (3 行 3 列) が与えられます。

入力例:

1,2,3
4,5,6
7,8,9

これを 2 次元配列にし、各列の合計 を 1 行ずつ (左の列から順に) 出力してください。

期待される出力:

12
15
18

ヒント

この章を AI に聞く

  1. 「ch11 — 入力 CSV を 2 次元配列にする」のつまずきやすいポイントを、初学者向けに3つ教えてください

    💬 ChatGPT 📘 Claude ✨ Gemini

  2. 「ch11 — 入力 CSV を 2 次元配列にする」について、自分の手で試せる練習問題を3つ出してください (難易度を上げながら)

    💬 ChatGPT 📘 Claude ✨ Gemini

  3. 「ch11 — 入力 CSV を 2 次元配列にする」を学んだ後、次に学ぶと良いトピックは何ですか?理由も教えてください

    💬 ChatGPT 📘 Claude ✨ Gemini

🎉 受講お疲れさまでした!

ch11 — 入力 CSV を 2 次元配列にする」を読み終えました。
学んだことを誰かに教えると、もっと記憶に残ります。

X で共有 Hatena LINE