文字列を配列、配列を文字列に変換(explodeとimplode)

文字列を配列に変換

explode()

explode()の構文は「explode(区切りもじ, 対象もじ列 [, 最大分割数]);」です。
explode()は対象もじ列を区切りもじで区切って、分割されたものを要素とする配列を返します。尚、explode()は正規表現が使えません。

1
2
3
// explode
$a = "AtoBtoCtoDtoE";
print_r(explode('to', $a));
実行結果:
Array
(
[0] => A
[1] => B
[2] => C
[3] => D
[4] => E
)

mb_split()

mb_split()の構文は「mb_split(パターン, 対象もじ列 [, 最大分割数]);」です。
mb_split()は対象もじ列を区切り文字で区切って、分割されたものを要素とする配列を返します。尚、mb_split()は正規表現が使えます。

1
2
$a = "AtoBtoCtoDtoE";
print_r(mb_split('to', $a));
実行結果:
Array
(
[0] => A
[1] => B
[2] => C
[3] => D
[4] => E
)

preg_split()

preg_split()の構文は「preg_split('/パターンは/', 対象もじ列 [, 最大分割数, [フラグ]]);」です。
preg_split()の第一引数であるパターンはクォートとスラッシュなどのデリミタでパターンもじれつを挟むようにして指定します。このパターンには正規表現を使うことができ、また「i」などの修飾子も使えます。マッチングに失敗すると対象もじれつの内容全てが一つの要素からなる配列を返します。第四引数のオプションのフラグには、空文字以外を返す「PREG_SPLIT_NO_EMPTY」、キャプチャされた値も返す「PREG_SPLIT_DELIM_CAPTURE」、マッチに対応するもじれつのオフセットも返す「PREG_SPLIT_OFFSET_CAPTURE」が使えます。「PREG_SPLIT_OFFSET_CAPTURE」を使うとオフセット値を含めた配列を返します。

1
2
$a = "AtoBtoCtoDtoE";
print_r(preg_split('/to/', $a));
実行結果:
Array
(
[0] => A
[1] => B
[2] => C
[3] => D
[4] => E
)
1
2
3
4
5
6
$a = "AtoBtoCtoDtoE";
echo '
<pre>';
print_r(preg_split('/To/i', $a, 10, PREG_SPLIT_OFFSET_CAPTURE));
echo '</pre>
';
実行結果:

Array
(
    [0] => Array
        (
            [0] => A
            [1] => 0
        )

    [1] => Array
        (
            [0] => B
            [1] => 3
        )

    [2] => Array
        (
            [0] => C
            [1] => 6
        )

    [3] => Array
        (
            [0] => D
            [1] => 9
        )

    [4] => Array
        (
            [0] => E
            [1] => 12
        )

)

配列をもじ列に変換

implode()

implode()の構文は「implode(連結文字, 対象配列);」です。
implode()は配列要素を取り出して、連結し、もじ列にして返します。引数に順番は無く、第一引数と第二引数を逆にしても動作しますが、一般的にはexplode()との統一性を保つために連結文字を先に記述するケースが多いようです。尚、join()関数はimplode()のエイリアスです。

1
2
3
// implode
$a = array('a','b','c');
echo implode('AND', $a);
実行結果:aANDbANDc