文字列を指定した文字で分割する

 CSVファイルなど、ある特定の文字で区切られたテキストデータを活用する方法を見てみましょう。次の関数が用意されています。

■ explode関数

 explode関数は、文字列を指定した文字列により分割して、配列で返します。

関数名 explode
パラメーターリスト
パラメター名 説明
string $delimiter 区切り文字列
string $string ターゲット文字列
返り値
array 分割した文字列の配列
explode関数の仕様

○ ファイル

 「DateTimeCalcTest.php」ファイルをコピーして、次のPHPファイルをプロジェクトに追加してください。

ファイルの種類 PHPファイル
ファイル名 ExplodeTest.php

サンプルダウンロード

○ プログラム

 次のようにプログラムを記述してください。

ExplodeTest.php

  1. <head>
  2. <meta charset="UTF-8">
  3. <title>文字列分割</title>
  4. </head>
  5. <body>
  6. <?php
  7. //ターゲットとなる文字列を用意する
  8. $target = 'ばなな,みかん,もも,なし,すいか,りんご';
  9. //「,」で分割する
  10. $ret = explode(',', $target);
  11. var_dump($ret);
  12. ?>
  13. </body>

○ 実行結果

実行結果
実行結果

○ 解説

 10行目で、カンマ区切りのフルーツのデータを指定しています。13行目で「explode」関数を使用しています。第1引数に文字列「,」を、第2引数にフルーツのデータを渡しています。結果として「,」で分割された文字列が配列として返ってくるので、変数retに格納しています。

 14行目で変数targetを確認すると、配列として分割されていることを確認できます。

■ preg_split関数

 preg_split関数は分割する文字を、正規表現を使って検出し、文字列を分割します。

関数名 preg_split
パラメーターリスト
パラメター名 説明
string $pattern 検索するパターンを表す文字列(正規表現)
string $subject ターゲット文字列
返り値
array 分割した文字列の配列
preg_split関数の仕様

○ ファイル

 「ExplodeTest.php」ファイルをコピーして、次のPHPファイルをプロジェクトに追加してください。

ファイルの種類 PHPファイル
ファイル名 PregSplitTest.php

サンプルダウンロード

○ プログラム

 次のようにプログラムを記述してください。

PregSplitTest.php

  1. <body>
  2. <?php
  3. //ターゲットとなる文字列を用意する
  4. $target = 'ばななs0みかんs2ももs1なしs5すいかs6りんご';
  5. //「¥〇」で分割する
  6. $ret = preg_split("/s[0-9]/", $target);
  7. var_dump($ret);
  8. ?>
  9. </body>

○ 実行結果

実行結果
実行結果

○ 解説

 10行目で、連続したフルーツのデータを準備しています。今回は「s○」(○は1桁の数字)が区切り文字として使用されています。

 13行目で、「preg_split」関数を使用しています。第1引数に正規表現を指定します。今回は「/s[0-9]/」を引数として渡しています。これにより「s○」となっている部分で分割します。19行目で表示していますが、表示結果を確認すると、分割されていることを確認できます。

前へ   次へ