概要

実際のプログラムでは、入力データが 1 つの長い文字列 として渡されることが多い。「CSV ファイルの 1 行」「URL のクエリパラメータ」「ユーザーが入力したカンマ区切りのタグ」など、ぜんぶ文字列のまま受け取って、これを 配列に分解 してからループで処理する。この「文字列 → 配列」の橋渡しを担うのが explode 関数だ。

explode($sep, $s) は「$s$sep で区切って配列にする」と読む。たとえば explode(",", "a,b,c")["a", "b", "c"] を返す。区切り文字は 1 文字でも複数文字でもよく、explode(" -> ", "x -> y -> z") のようにも書ける。区切り文字が文字列内に存在しない場合は、元の文字列がそのまま 1 要素の配列として返る (["a,b,c"] ではなく ["a,b,c"] — 元の文字列のみ)。

第 3 引数 limit を渡すと 分割数の上限 を制御できる。explode(",", "a,b,c,d", 2)["a", "b,c,d"] のように、最初の区切り文字までで分割を打ち止めにする。「最初のカンマまでをキーとして取り出したい」といった用途で重宝する。この章では分割した配列を for で走査するところまでやって、文字列処理と配列処理を地続きにつなぐ感覚を作る。

学習目標

ドリル

no 内容
01 "a,b,c", で分割し、各要素を 1 行ずつ出力
02 スペース区切り入力を分割して、要素数を出力

演習: ドリル 02 — スペース区切りの要素数

問題

標準入力から 1 行を読み取り、スペース " " で分割した要素数を 1 行出力してください。

入力例:

3 14 15 92 6 5

期待される出力:

6

ヒント

この章を AI に聞く

  1. 「ch06 — 文字列を配列に分割」のつまずきやすいポイントを、初学者向けに3つ教えてください

    💬 ChatGPT 📘 Claude ✨ Gemini

  2. 「ch06 — 文字列を配列に分割」について、自分の手で試せる練習問題を3つ出してください (難易度を上げながら)

    💬 ChatGPT 📘 Claude ✨ Gemini

  3. 「ch06 — 文字列を配列に分割」を学んだ後、次に学ぶと良いトピックは何ですか?理由も教えてください

    💬 ChatGPT 📘 Claude ✨ Gemini

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

ch06 — 文字列を配列に分割」を読み終えました。
学んだことを誰かに教えると、もっと記憶に残ります。

X で共有 Hatena LINE