【PHP】explode/implode関数の使い方(文字列の分割と結合)

アイキャッチ画像explode PHP
PHP
この記事は約4分で読めます。
Recommended Articles

【PHP】文字列の分割と結合

explode関数の使い方(文字列を分割する)

php3~ で使用できます。

explode関数 : 書式
explode(区切り文字, 文字列 [, 作成される配列の最大要素数])

戻り値:分割された文字列を個々の要素とする配列

explode関数は指定された区切り文字で文字列を分割します。分割された個々の値が配列として返されます。指定した区切り文字が含まれないときは元の文字列のまま返します。また、空文字「""」が区切り文字として指定された場合はFALSEを返します。
  • よく使われる区切り文字と主な処理対象データ
    「 」ログ、microtime関数で取得したタイムスタンプ、検索キーワード
    「-」日付
    「:」時刻
    「/」日付、path
    「?」パラメータつきURL
    「&」クエリ文字列
    「,」ログ、CSVファイル
    「.」ドメイン名、IPアドレス、ファイル名、バージョン番号
    「\t」タブ区切りテキスト
    「\n」ファイルのデータ一式
explode関数 : 使用例
  • 文字列を分割する
    $str = "PHP3,PHP4,PHP5";
    $array = explode(",", $str);

    $arrayにセットされる内容
    Array ( [0] => PHP3 [1] => PHP4 [2] => PHP5 )

  • 日付を分割する
    $date = date("Y/m/d");
    $array = explode("/", $date);

    $arrayにセットされる内容
    Array ( [0] => 2020 [1] => 08 [2] => 23 )

  • PHPのバージョン情報を分割する(例:PHP5.0.0)
    $array = explode(".", PHP_VERSION);

    $arrayにセットされる内容
    Array ( [0] => 5 [1] => 0 [2] => 0 )

  • 分割された文字列の最後の要素以外を配列に格納する
    $str = "A-B-C";
    $array = explode("-", $str, -1);
    print_r($array); 「Array([0]=>A [1]=>B [2]=>C)」を出力

     PHP5.1からは最後のパラメータに負の数を指定できるようになりました。負の数を指定すると、最後の要素から指定個数分の要素を配列に格納しません。文字列の最後にも区切り文字が付加されている場合の処理で活用できます。

参考
  • 文字列を指定サイズで分割する
    $array = str_split("abcdef"); →1文字づつ分割
    print_r($array);

    出力結果
    Array([0]=>a [1]=>b [2]=>c [3]=>d [4]=>e [5]=>f)

     PHP5で追加されたstr_split関数を使うと、区切り文字単位でなくても、文字列を指定サイズで分割することができます。

implode関数の使い方(配列をひとつの文字列に結合する)

php3~ で使用できます。

implode関数 : 書式
implode([結合する要素を区切る文字,] 配列)

戻り値:結合後の文字列

implode関数は配列の要素をひとつの文字列に結合します。文字列を分割して配列にセットするexplode関数と逆の働きです。2つのパラメータは順番を入れ替えて指定しても動作します。個々の要素は指定した区切り文字で区切ることもできます。配列に格納されている値をひとつの文字列にしてファイルに書き込むといった使い方があります。
implode関数 : 使用例
  • 配列をひとつの文字に結合する
    echo implode(":", array("東", "南", "西", "北")); →「東:南:西:北」を出力
    echo implode("-", array("052", "777", "7890")); →「052-777-7890」を出力
    echo implode("/", array("2023", "12", "31")); →「2023/12/31」を出力
    echo implode("&", array("p1=10", "p2=abc")); →「p1=10&p2=abc」を出力
    echo implode(".", array("127", "0", "0", "1")); →「127.0.0.1」を出力

  • 配列の内容をファイルに書き込む
    $array = array("田中", "愛知", "会社員");
    fputs($fp, implode(",", $array)); →ファイルに「田中,愛知,会社員」を追加

関連リンク

PHPトップページ
PHP入門 & 関数リファレンス
PHPの初心者からベテランまで活用できるページです。初めての方はもちろん、もう一度基礎から学びなおしたい方は、基礎知識のページを順に読んで理解しましょう。ベテランの方向けには、関数の書式・パラメーターを調べられる構成になっています。PHPプログラム作成時にご活用下さい。
Recommended Articles