カテゴリー

キーワード

 
> 【PHP】 explodeとimplodeで...

【PHP】 explodeとimplodeで文字列と配列を変換


2015 年 2 月 18 日 投稿    view: 11629
タグ:
このエントリーをはてなブックマークに追加

PHP マリーナ

こんにちは。エンジニアの真田です。
初めての記事です。


今日はPHPでプログラミングしているとよく使う関数のexplodeimplode について記事を書きます。


explodeとimplode

explodeとimplodeはどちらも文字列と配列に関係する関数です。


◆explode   文字列を区切り文字で要素に分割、配列に変換する。

    explode ("区切り文字", "分割する文字列", ["分割する回数"]);

    ※第3パラメータの分割する回数は省略できる
    その場合すべての区切り文字で分割を行う


◆implode   配列の要素を連結文字で結合、文字列に変換する。

    implode ("連結文字", 配列);

    ※結合文字を省略または空白文字にすることで要素のみをそのまま結合する


全く逆の働きをする関数です。

言葉で説明するより見てもらった方がいいかもしれませんので、参考ソースをどうぞ。


◆explodeの参考ソース


    $arg = "arg1/arg2/arg3/arg4";//分割する文字列
    $arg_array = explode("/", $arg, 3);//文字列 $arg を / で3回分割し配列$arg_arrayに格納
    
    echo "<pre>";
    var_dump($arg_array);
    echo "</pre>";

実行結果

    array(3) {
      [0]=>
      string(4) "arg1"
      [1]=>
      string(4) "arg2"
      [2]=>
      string(9) "arg3/arg4"
    }

◆explodeの第3パラメータを省略した場合


    $arg = "arg1/arg2/arg3/arg4";//分割する文字列
    $arg_array = explode("/", $arg);
    
    echo "<pre>";
    var_dump($arg_array);
    echo "</pre>";

実行結果

    array(4) {
      [0]=>
      string(4) "arg1"
      [1]=>
      string(4) "arg2"
      [2]=>
      string(4) "arg3"
      [3]=>
      string(4) "arg4"
    }

よく使うのは、下の「第3パラメータを省略した場合」ですね。
どういう結果が求められるかによって使い分けてください。


補足

4行目と6行目をpreタグで囲んでいるのは、実行結果を見やすくするために改行しているということです。


5行目のvar_dump()はPHPの関数で、「引数として指定した変数の内容や命令の返り値を画面上に出力」する役割を果たしてくれます。


「string」というのは中身の型を表しています。中身が1とか2みたいな整数だとintを返してくれます。
「(4)」というのは長さを表しています。
で、ダブルクォート2つ「""」の間にあるものが中身(値)を表しています。ここだとarg1とかarg2のことですね。


このpreタグで挟んでvar_dump()で出力というのはプログラムを検証するときに使うと便利です。
ご存知なかった方は覚えておいてくださいね。


※var_dumpに似た関数でprint_r()というのがありますけど、var_dump()の方が(指定した変数の)より詳細な情報を構造化して返してくれます。


ちなみにexplodeは、より実践的にはこんな感じで使います。


$arg = "arg1/arg2/arg3/arg4";//分割する文字列
$arg_array = explode("/", $arg);
echo $arg_array[0];

実行結果

arg1

例えば、arg2だけを取り出して変数に格納し、それをフォームで飛ばしたいなんてときがあるかもしれません。
その場合は、$arg_array[1]を変数に入れてください。
こんな感じですね。


$hensuu = $arg_array[1];

変数名は好きなものにしてくださいね。


◆implodeの参考ソース


    $arg_array = array("arg1","arg2","arg3/arg4");
    echo implode("/", $arg_array);

実行結果

    arg1/arg2/arg3/arg4

結合文字を省略した場合の実行結果


    $arg_array = array("arg1","arg2","arg3/arg4");
    echo implode($arg_array);

実行結果

    arg1arg2arg3/arg4

implodeはバラバラのデータをまとめて変数に格納できるのが便利な点ですね。
これもフォームで飛ばすときなんかは、実行結果を変数に入れてvalueの値にすると楽にできます。

こんな感じです。


$arg_array = array("arg1","arg2","arg3/arg4");
$hairetsu = implode($arg_array);

まとめ

配列操作はPHPでプログラミングしていると、避けては通れない部分です。


そして、explodeとimplodeは配列操作に欠かせない関数です。



両方併せて覚えておくと、かなりコードを書くのが楽になります。
ぜひ、実行結果の検証と共に使ってみてください。


最後までお読みいただき、ありがとうございました。

 

 

 


カテゴリー

タグ
この記事が気に入りましたら、是非、他の方にもシェアしてください。
このエントリーをはてなブックマークに追加
関連記事