Lesson 4 / Chapter 6
なぜ分割が要るのか
CSV の 1 行: "apple,banana,cherry"
URL のクエリ: "name=alice&age=30"
ユーザー入力タグ: "php css js"
現実のデータは 1 本の文字列 で渡ってくることが多い。
ループで処理するには、まず配列に分けてから扱う。
explode($sep, $s) の基本
<?php
$csv = "apple,banana,cherry";
$arr = explode(",", $csv);
print_r($arr);
実行結果:
Array
(
[0] => apple
[1] => banana
[2] => cherry
)
explode($sep, $s) = 「$s を $sep で区切って配列にする」
- 区切り文字
, は結果に含まれない
区切り文字は自由に選べる
<?php
// スペース区切り
$tags = explode(" ", "php css js");
// → ["php", "css", "js"]
// 複数文字の区切り
$path = explode(" -> ", "home -> products -> php");
// → ["home", "products", "php"]
- 半角スペース / タブ /
, / - / : など何でも OK
- 矢印
-> のような 複数文字 も区切り文字にできる
分割した配列を for で処理する
<?php
$csv = "apple,banana,cherry";
$arr = explode(",", $csv);
for ($i = 0; $i < count($arr); $i++) {
echo ($i + 1) . ". " . $arr[$i] . "\n";
}
実行結果:
1. apple
2. banana
3. cherry
- 分割 → ループ で「文字列処理 + 配列処理」が地続きになる
第 3 引数で分割数を制限
<?php
// 最初のカンマでだけ分割 (= 2 要素に切る)
$line = "name,alice,30,tokyo";
$parts = explode(",", $line, 2);
// → ["name", "alice,30,tokyo"]
explode($sep, $s, $limit) の $limit で 分割数の上限 を指定
- 「
: の最初までを key にしたい」など、 1 つだけ切り出したいときに便利
このチャプターでできるようになること
✅ explode($sep, $s) で文字列を区切り文字で分割できる
✅ カンマ・スペース・複数文字の区切りに対応できる
✅ 分割した配列を for で走査できる
✅ limit で分割数を制御できる
→ ドリルへ