0Pricing
PHP Academy · レッスン

文字列の分割と結合

explode、implode、chunk_splitを使って文字列と配列を変換します

「文字列の分割と結合」はCoddyKit上の無料PHP Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPHP Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 PHP Academyコースには全4レッスンが含まれています。

explode()とimplode()

文字列と配列を相互変換する、最も重要な2つの関数です:

  • explode($delimiter, $string) — 文字列を配列に分割
  • implode($glue, $array) — 配列を文字列に連結

explode()の基本

区切り文字で文字列を分割します:

<?php
$csv = 'Alice,Bob,Carol,Dave';

$names = explode(',', $csv);
print_r($names);
// ['Alice', 'Bob', 'Carol', 'Dave']

// Limit the number of parts
$parts = explode(',', $csv, 2);
print_r($parts);
// ['Alice', 'Bob,Carol,Dave']

implode()とjoin()

文字列の配列を1つの文字列に連結します:

<?php
$tags = ['php', 'mysql', 'linux'];

echo implode(', ', $tags);    // php, mysql, linux
echo implode(' | ', $tags);   // php | mysql | linux
echo implode('', $tags);      // phpmysqllinux

// join() is an alias for implode()
echo join('-', $tags);  // php-mysql-linux

CSV行の解析

str_getcsv()を使用すると、引用符で囲まれたフィールドを含むCSV行を解析できます:

<?php
$line = 'Alice,"New York, NY",30';

$fields = str_getcsv($line);
print_r($fields);
// ['Alice', 'New York, NY', '30']

preg_split() — パターンによる分割

複雑な区切りには、正規表現パターンで分割します:

<?php
$text = 'one1two2three3four';

// Split on any digit
$parts = preg_split('/[0-9]/', $text);
print_r($parts);
// ['one', 'two', 'three', 'four']

// Split on whitespace (one or more)
$words = preg_split('/\s+/', '  hello   world  ');
print_r(array_filter($words)); // ['hello', 'world']

str_split()

str_split()は、文字列を指定したサイズのチャンクに分割して配列にします:

<?php
$str = 'Hello';

// Split into individual characters
$chars = str_split($str);
print_r($chars); // ['H','e','l','l','o']

// Split into chunks of 2
$chunks = str_split('ABCDEF', 2);
print_r($chunks); // ['AB','CD','EF']

クエリ文字列の構築

http_build_query()を使用して、配列からURLクエリ文字列を組み立てます:

<?php
$params = [
    'search' => 'php tutorial',
    'page'   => 2,
    'sort'   => 'date',
];

$query = http_build_query($params);
echo $query;
// search=php+tutorial&page=2&sort=date

echo '/posts?' . $query;

クエリ文字列の解析

parse_str()を使用して、URLクエリ文字列を配列に解析します:

<?php
$qs = 'name=Alice&age=30&city=London';

parse_str($qs, $params);
print_r($params);
// ['name'=>'Alice', 'age'=>'30', 'city'=>'London']

// Or use parse_url + parse_str for full URLs
$url    = 'https://example.com/search?q=php&page=1';
$query  = parse_url($url, PHP_URL_QUERY);
parse_str($query, $params);
echo $params['q']; // php

SQLのIN句でのimplode

implodeの典型的な用途の1つは、配列からSQLのIN句を構築することです:

<?php
$ids = [1, 2, 3, 4, 5];
$placeholders = implode(',', array_fill(0, count($ids), '?'));

$sql = "SELECT * FROM users WHERE id IN ($placeholders)";
echo $sql;
// SELECT * FROM users WHERE id IN (?,?,?,?,?)
// Use prepared statements with these placeholders!

文字列から単語の配列へ

文を単語に分割し、それぞれを処理します:

<?php
$sentence = 'The quick brown fox';
$words = explode(' ', $sentence);

$reversed = array_reverse($words);
echo implode(' ', $reversed);
// fox brown quick The

$wordCount = count($words);
echo "Word count: $wordCount"; // 4

配列展開を使ったsprintf

implodeとsprintfを組み合わせて、柔軟なフォーマットを実現します:

<?php
$cols   = ['name', 'email', 'age'];
$values = ['Alice', 'alice@test.com', 30];

$colList = implode(', ', $cols);
$valPlaceholders = implode(', ', array_fill(0, count($values), '?'));

$sql = "INSERT INTO users ($colList) VALUES ($valPlaceholders)";
echo $sql;
// INSERT INTO users (name, email, age) VALUES (?, ?, ?)

確認問題

explode(',', 'a,b,c', 2)は何を返しますか:

まとめ: 分割と連結

主な関数:

  • explode($delim, $str) — 文字列から配列へ変換
  • implode($glue, $arr) — 配列から文字列へ変換
  • str_split($str, $len) — 固定長のチャンクに分割
  • preg_split($pattern, $str) — 正規表現で分割
  • str_getcsv() — 引用符で囲まれたフィールドを含むCSVを解析
  • http_build_query() — 配列をURLクエリ文字列に変換

よくある質問

「文字列の分割と結合」レッスンは無料ですか?

はい。「文字列の分割と結合」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、PHP Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 PHP Academyコースには全4レッスンが含まれています。

「文字列の分割と結合」で何を学びますか?

explode、implode、chunk_splitを使って文字列と配列を変換します ブラウザで直接実行するハンズオンコードでPHP Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

PHP Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのPHP Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「文字列の分割と結合」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このPHP Academyレッスンでコードを書いて実行できますか?

はい。すべてのPHP Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 文字列の基礎と連結
  2. 文字列の検索と置換
  3. 部分文字列とパディング関数
  4. 文字列の分割と結合
← PHP Academyに戻る