原文: PHP Explode – How to Split a String into an Array
PHP の explode()
関数は文字列を配列に変換します。文字列の各文字には 0 から始まるインデックスが付けられます。組み込みの implode()
関数と同様に、explode()
関数はデータ (文字列) を変更しません。
explode()
関数の構文
explode() 関数は三つのパラメータを取ります。
- 区切り文字「seperator」
- 配列に変更する文字列「string」
- 上限「limit」
全体の構文は以下のようになります。
explode(seperator, string, limit)
implode()
関数は区切り文字が指定されていなくても動作しますが、explode()
関数は区切り文字がないと動作しません。ですから、文字列を配列に分割する場合、区切り文字が必要です。limit パラメータには、期待される配列の要素数を指定することができます。これは任意のパラメータです。
implode()
の例
この例で、文字列が「Hello World」とします。もし、この文字列を explode()
関数に入力した場合、Hello
には 0 のインデックスが付けられて、World
には 1 のインデックスが付けられます。配列はゼロベースのインデックス付けであることを忘れないでください。
$str = "Hello world";
$newStr = explode(" ", $str);
// 配列を出力するので、print_r() を使うことができます。
print_r($newStr);
もし explode()
関数の上限を指定したら、インデックスは上限に指定された数を超えることはありません。例えば、もし 2 を指定したら、全ての文字列が表示されますが、インデックスは 2 を超えません。
$str = "CSS, HTML, PHP, Java, JavaScript";
$newStr = explode(" ", $str, 2);
// 配列を出力するので、print_r() を使うことができます。
print_r($newStr);
最初の要素はインデックス 0 を取り、残りのコンマで区切られた要素は 1 を取ります。インデックスは、指定された 2 の上限を超えることはありません。
下記の explode()
関数は、文字列内のスペースを見て、文字列を配列に分割します。もし異なる二つの単語を繋げて入力した場合、それらは一つとして扱われます。
$str = "CSS HTMLPHP Java JavaScript";
$newStr = explode(" ", $str);
// 配列を出力するので、print_r() を使うことができます。
print_r($newStr);
HTML と PHP が一緒に出力されたのは、その間にスペースがなかったためです。
結論
この記事では、PHP の explode()
関数の使い方を学びました。
区切り文字がなくても動作する implode()
とは異なり、explode()
では区切り文字が非常に重要です。区切り文字を指定しないと、explode()
は期待通りに動作しませんので、注意してください。
$str = "CSS, HTML, PHP, Java, JavaScript";
$newStr = explode($str, 2);
// 配列を出力するので、print_r() を使うことができます。
print_r($newStr);
もし区切り文字が空の文字列だった場合、エラーが発生します。
お読みいただき、ありがとうございました。