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

文字列を配列に変換

explode()

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

PHP
1
2
3
4
<?php
$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()は正規表現が使えます。

PHP
1
2
3
4
<?php
$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」を使うとオフセット値を含めた配列を返します。

PHP
1
2
3
4
<?php
$a = "AtoBtoCtoDtoE";
print_r(preg_split('/to/', $a));
?>
実行結果:
Array
(
[0] => A
[1] => B
[2] => C
[3] => D
[4] => E
)
PHP
1
2
3
4
5
6
7
8
<?php
$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()のエイリアスです。

PHP
1
2
3
4
<?php
$a = array('a','b','c');
echo implode('AND', $a);
?>
実行結果:aANDbANDc