ch07 8章中 7章目

ch07 — 配列を文字列に連結

スライドで見る

この章を AI と学ぶ

💬 AI に聞く質問例 3 件
  1. 「ch07 — 配列を文字列に連結」のつまずきやすいポイントを、初学者向けに3つ教えてください

    ChatGPT Claude Gemini

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

    ChatGPT Claude Gemini

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

    ChatGPT Claude Gemini

概要

前章で覚えた explode で文字列を配列に分解できるようになったら、次に必要になるのは その逆向き。集計結果やループで作った配列を、画面に表示したりファイルに書き出したりするために 1 本の文字列に戻す 操作だ。これを担うのが implode 関数。

implode($glue, $arr) は「$arr の要素を $glue でつなぐ」と読む。implode(",", ["a", "b", "c"]) なら "a,b,c" を返す。第 1 引数の $glue は要素と要素の 間に入る文字列 で、要素数より 1 つ少ない回数だけ挿入される。区切り文字は 1 文字でも、" -> ""\n" (改行) のような複数文字でも自由に指定できる。

ここでハマりやすいのが 引数の順序explode($区切り, $文字列) の順で受け取り、implode($区切り, $配列) の順。両方とも「区切り文字が第 1 引数」で揃っているのだが、頭の中で「配列が主役だから配列が先かな」と感じて逆に書いてしまうミスがとても多い。ちなみに implode には join という別名があり、機能はまったく同じ。読むときはどちらに出会っても慌てないように。

学習目標

  • implode($glue, $arr) で配列を区切り文字でつないだ文字列にできる
  • explode と逆向きの操作 (配列 → 文字列) であると理解する
  • 任意の区切り文字 (カンマ・矢印・改行など) で連結できる

ドリル

no 内容
01 整数配列を "," で連結して出力
02 文字列配列を " -> " で連結して出力

解説スライド 全 6 枚

右の ボタン キー(またはスワイプ)で次のスライドに進めます。 下の「縦表示」を開くと全スライドを一気に読めます。

  1. 配列を文字列に連結

    Lesson 4 / Chapter 7

  2. ch06 の逆向き操作

    explode:  "a,b,c"  →  ["a", "b", "c"]
    implode:  ["a", "b", "c"]  →  "a,b,c"
    • explode分割 (文字列 → 配列)
    • implode結合 (配列 → 文字列)
    • セットで覚える
  3. implode($glue, $arr) の基本

    <?php
    $nums = [10, 20, 30];
    $s = implode(",", $nums);
    
    echo $s . "\n";   // 10,20,30
    • 第 1 引数: 区切り文字 (glue)
    • 第 2 引数: 配列
    • 配列の要素を区切り文字でつないだ文字列が返る
  4. 区切り文字は自由に選べる

    <?php
    $path = ["home", "user", "docs"];
    
    echo implode("/", $path) . "\n";   // home/user/docs
    echo implode(" - ", $path) . "\n"; // home - user - docs
    echo implode("\n", $path) . "\n";  // home\nuser\ndocs (改行区切り)
    • 1 文字でも複数文字でも OK
    • 改行文字 "\n" を使えば 1 行ずつ出力するのにも使える
  5. ループとの組み合わせ

    <?php
    $squares = [];
    for ($i = 1; $i <= 5; $i++) {
        $squares[] = $i * $i;
    }
    
    echo implode(",", $squares) . "\n";   // 1,4,9,16,25
    • ループで配列を組み立てる → implode で 1 行にまとめる
    • これは 競技プログラミングや CSV 出力で頻出 のパターン
  6. このチャプターでできるようになること

    implode(",", $arr) でカンマ区切りに変換できる ✅ 任意の区切り文字を選べる ✅ explode の逆操作だと説明できる ✅ ループで作った配列をまとめて 1 行に出せる

    → ドリルへ

1 / 6
📜 スライドを全部一気に読む(縦表示)

Lesson 4 / Chapter 7


ch06 の逆向き操作

explode:  "a,b,c"  →  ["a", "b", "c"]
implode:  ["a", "b", "c"]  →  "a,b,c"
  • explode分割 (文字列 → 配列)
  • implode結合 (配列 → 文字列)
  • セットで覚える

implode($glue, $arr) の基本

<?php
$nums = [10, 20, 30];
$s = implode(",", $nums);

echo $s . "\n";   // 10,20,30
  • 第 1 引数: 区切り文字 (glue)
  • 第 2 引数: 配列
  • 配列の要素を区切り文字でつないだ文字列が返る

区切り文字は自由に選べる

<?php
$path = ["home", "user", "docs"];

echo implode("/", $path) . "\n";   // home/user/docs
echo implode(" - ", $path) . "\n"; // home - user - docs
echo implode("\n", $path) . "\n";  // home\nuser\ndocs (改行区切り)
  • 1 文字でも複数文字でも OK
  • 改行文字 "\n" を使えば 1 行ずつ出力するのにも使える

ループとの組み合わせ

<?php
$squares = [];
for ($i = 1; $i <= 5; $i++) {
    $squares[] = $i * $i;
}

echo implode(",", $squares) . "\n";   // 1,4,9,16,25
  • ループで配列を組み立てる → implode で 1 行にまとめる
  • これは 競技プログラミングや CSV 出力で頻出 のパターン

このチャプターでできるようになること

implode(",", $arr) でカンマ区切りに変換できる ✅ 任意の区切り文字を選べる ✅ explode の逆操作だと説明できる ✅ ループで作った配列をまとめて 1 行に出せる

→ ドリルへ

この章で取り組む 演習問題の流れ (2ステップ)
  1. 01 ドリル 01 — カンマで連結 README.md starter.php answer.php
  2. 02 02-join-arrow starter.php answer.php

演習問題の詳細

この章の演習問題の内容を読めます。実際に手元で解くには教材リポジトリを clone してください。

ドリル 01 — カンマで連結

問題

配列 [1, 2, 3, 4, 5], で連結して 1 行出力してください。

期待される出力:

1,2,3,4,5

ヒント

  • $nums = [1, 2, 3, 4, 5];
  • echo implode(",", $nums) . "\n";

🧪 ブラウザで試す

スライドのコードを写経して ▶ 実行、自分で書いて 📝 採点 で答え合わせ。初回のみ PHP ランタイム読込で数秒かかります。

PHP ランタイム未読込

          

        

演習問題(2問)

  1. ドリル 01 — カンマで連結

    README.md starter.php answer.php

  2. 02-join-arrow

    starter.php answer.php

サイト内で問題文・雛形・解答例を確認できます。実際に手元で解くには教材リポジトリを clone してください。

完了にすると進捗に反映されます