指定文字列ごとに配列格納【PHP】
この記事では、ある文字列を指定した文字で区切り、配列に格納する方法を記載しています。
$example = "HTML | CSS | PHP | Ruby | Python"
上記のような文字列「|」で区切り、配列に格納しましょう。
配列に格納するために、explode関数を使用します。
explode関数の形式
explode('区切りたい指定の文字列','配列に格納したい文字列','整数')
上記の記載方法をすることで、文字列の配列を返します。
パラメーターについて
第一引数:区切りたい指定の文字列
区切りたい部分の文字列を引数としてあてがいます。
第二引数:配列
区切りたい文字列を引数として代入します。
第三引数:整数
第三引数には、整数を与えます。引数を与えなかった場合は、すべての区切り分だけ配列を作成しますので、記載しなくても構いません。
正の数を与えると、指定した数分の配列に区切りごとに文字列が代入されますが、区切りがこの整数よりも多かった場合、最後の配列にのこりのすべての文字列が代入されます。
また、負の数を与えると、区切られた配列の最後から、代入した値の絶対数だけ配列から削除される(もともと代入されない)ようになります。
言葉ではイメージが付きにくいと思うのでサンプルを見てみましょう。
例題1.シンプルな区切り
$example = "HTML | CSS | PHP | Ruby | Python";
var_dump(explode('|',$example));
var_dump(explode(' | ',$example));
array(5) { [0]=> string(5) "HTML " [1]=> string(5) " CSS " [2]=> string(5) " PHP " [3]=> string(6) " Ruby " [4]=> string(7) " Python" } array(5) { [0]=> string(4) "HTML" [1]=> string(3) "CSS" [2]=> string(3) "PHP" [3]=> string(4) "Ruby" [4]=> string(6) "Python" }
一つ目は、指定文字|の左右に空白があるため空白も含めて配列に格納されています。
二つ目は、空白も併せて指定文字としているので、若干配列内の文字が違うことがわかるかと思います。
例題2.第三引数を指定した例
$example = "HTML | CSS | PHP | Ruby | Python";
var_dump(explode('|',$example,1));
var_dump(explode('|',$example,3));
var_dump(explode('|',$example,-1));
var_dump(explode('|',$example,-2));
array(1) { [0]=> string(32) "HTML | CSS | PHP | Ruby | Python" } array(3) { [0]=> string(5) "HTML " [1]=> string(5) " CSS " [2]=> string(20) " PHP | Ruby | Python" } array(4) { [0]=> string(5) "HTML " [1]=> string(5) " CSS " [2]=> string(5) " PHP " [3]=> string(6) " Ruby " } array(3) { [0]=> string(5) "HTML " [1]=> string(5) " CSS " [2]=> string(5) " PHP " }
例題2‐1.引数1を指定した場合
1つ目のexplode関数では、引数に1を指定しているので、一つの配列に格納されています。配列に格納しなければ特に意味のないことをしています。
例題2‐2.引数3を指定した場合
2つ目の explode関数 では、引数に3を指定しています。3つの配列に値が格納されていることがわかるかと思います。指定文字列|は4つありますが、配列が3つしか用意されないので、あぶれた文字列はすべて3つ目の配列に格納されていることがわかります。
例題2‐3.引数-1を指定した場合
3つ目の explode関数 では、 引数に-1を指定しています。引数を指定しないと、5つの配列が出来上がるのですが、負の引数を指定すると、当初出来上がる引数から、マイナス数字分の配列ができます。
今回は‐1を指定しているので、本来なら、「HTML」「CSS」「PHP」「Ruby」「Pythone」の5つの配列となるところ、最後の一つを削除し、 「HTML」「CSS」「PHP」「Ruby」 の4つが配列に格納されます。
例題2‐4.引数-2を指定した場合
例題2‐3で説明したのと同様に、-2が指定しているので、 「HTML」「CSS」「PHP」 の配列ができます。
- PHP
- 指定文字列ごとに配列格納【PHP】