PHPのexplode()関数とは?文字列を分割する使い方とパラメータの詳細解説
PHPのexplode()関数は、指定した区切り文字列(デリミタ)をもとに、文字列を分割して配列として返すための関数です。CSV形式のデータ処理や、スペース区切りのテキストを分解したい場合など、さまざまな場面で活用できます。
構文
explode(delimiter, str, limit)
パラメータ
delimiter − 文字列を分割するための境界文字列(区切り文字)を指定します。
str − 分割対象となる入力文字列です。
limit − 返される配列の要素数を指定します(省略可能)。
limitには以下の値を指定できます。
0より大きい値 − 最大でlimit個の要素を持つ配列を返します。最後の要素には残りの文字列がすべて含まれます。
0より小さい値 − 最後の「-limit」個の要素を除いた配列を返します。
0 − 要素が1つだけの配列(元の文字列全体)を返します。
戻り値
explode()関数は、分割された文字列からなる配列(array)を返します。
それでは、具体的な使用例を見ていきましょう。
使用例1:基本的な使い方
<?php
$s = "This is demo text!";
print_r (explode(" ",$s));
?>この例では、半角スペースを区切り文字として文字列を分割しています。実行結果は以下のとおりです。
出力結果
Array ( [0] => This [1] => is [2] => demo [3] => text! )
次に、limitパラメータに「0」を指定した場合の例を見てみましょう。
使用例2:limitに0を指定した場合
<?php
$str = 'car,bus,motorbike,cycle';
print_r(explode(',',$str,0));
print "<br>";
?>limitに0を指定すると、分割は行われず、元の文字列がそのまま1つの要素として返されます。
出力結果
Array ( [0] => car,bus,motorbike,cycle )
続いて、limitに正の数値「2」を指定した場合の例です。
使用例3:limitに2を指定した場合
<?php
$str = 'car,bus,motorbike,cycle';
print_r(explode(',',$str,2));
?>limitに2を指定すると、配列は最大2つの要素を持ち、最後の要素に残りの文字列がすべて格納されます。
出力結果
Array ( [0] => car [1] => bus,motorbike,cycle )
最後に、limitに負の数値「-1」を指定した場合の例を見てみましょう。
使用例4:limitに-1を指定した場合
<?php
$str = 'car,bus,motorbike,cycle';
print_r(explode(',',$str,-1));
?>limitに-1を指定すると、最後の1つの要素(この場合は「cycle」)が除外された配列が返されます。
出力結果
Array ( [0] => car [1] => bus [2] => motorbike )
まとめ
explode()関数は、区切り文字を基準に文字列を簡単に配列へ変換できる便利な関数です。limitパラメータを使いこなすことで、取得する要素数を柔軟に制御できます。特にCSVデータの解析や、URL・日付文字列の分解などで頻繁に利用されるため、ぜひ使い方をマスターしておきましょう。
-
PHPのarray_reverse()関数の使い方を解説!配列を逆順にする方法
PHPのarray_reverse()関数は、配列の要素を逆順に並べ替えた新しい配列を返す関数です。元の配列は変更されず、要素の順序が反転した結果のみを受け取ることができます。構文array_reverse(arr, preservekey)パラメータarr − 逆順にしたい対象の配列を指定します。preservekey − 配列のキーを保持するかどうかを指定します。TRUEまたはFALSEの値を取ります。省略した場合(デフォルトはFALSE)は、キーが振り直され数値キー(0、1、2…)になります。TRUEを指定すると、元のキーと値の対応関係がそのまま維持されます。戻り値array_rever
-
PHPのarray()関数とは?配列の作成方法をわかりやすく解説
PHPのarray()関数は、配列を作成するための関数です。PHPにおける配列には、主に以下の3種類が存在します。インデックス配列 − 数値インデックス(0から始まる番号)で要素を管理する配列連想配列 − 文字列などの名前付きキーで要素を管理する配列多次元配列 − 配列の中に1つ以上の配列を含む、入れ子構造の配列構文// 数値インデックスを持つ配列(インデックス配列) array(value1, value2, ...); // 名前付きキーを持つ配列(連想配列) array(key1 => value1, key2 => value2, ...)パラメータvalue − 配列に