指定文字列ごとに配列格納【PHP】

2019.11

PHP

facebookシェア
twitterシェア

この記事では、ある文字列を指定した文字で区切り、配列に格納する方法を記載しています。

$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」 の配列ができます。

  • facebookシェア
  • twitterシェア