概要
前章で覚えた 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 | 文字列配列を " -> " で連結して出力 |
📝 演習: ドリル 01 — カンマで連結
問題
配列 [1, 2, 3, 4, 5] を , で連結して 1 行出力してください。
期待される出力:
1,2,3,4,5ヒント
$nums = [1, 2, 3, 4, 5];echo implode(",", $nums) . "\n";