PHPでカンマ区切りの文字列を配列に変換する方法!

PHPで文字列を分割して配列にする方法はいくつがありますが、ここではカンマ区切りの文字列を配列に変換する方法について、解説します。

コンテンツ [表示]

  1. 1PHPでカンマ区切りの文字列を配列に変換したい
  2. 2PHPでカンマ区切りの文字列を配列に変換する方法
  3. 2.1PHPのexplode関数を使って文字列を分割する
  4. 2.2PHPのpreg_split関数を使って文字列を分割する
  5. 3まとめ

PHPでカンマ区切りの文字列を配列に変換したい

PHPで文字列を分割するにはstr_split関数・explode関数・preg_split関数があります。

str_split関数は、文字列を文字のバイト数で分割する関数です。今回のカンマ区切りで文字列を分割した配列にするには適していません。

explode関数は指定文字列で分割する関数で、preg_split関数は正規表現の指定文字列で分割する関数です。
今回はこの2つの関数について解説したいと思います。

Photo bydoki7

PHPでカンマ区切りの文字列を配列に変換する方法

explode関数とpreg_split関数を使って下記の文字列$variablesをカンマ区切りで分割してみます。

 

$variables

$variables = 'あいうえお,かきく%/$けこ,abcde,12345,00';

PHPのexplode関数を使って文字列を分割する

explode関数は下記の様に使用します。第一引き数へは分割の区切り文字列を、第二引き数には分割したい文字列をセットします。

explode関数の使い方

explode( '区切り文字列', '分割したい文字列');

実行結果をサンプルコードで確認しまみしょう。

配列$variablesがカンマ区切りで配列化されています。

分割の区切り文字列が空の文字列の場合は、PHPの警告が発生し、関数の戻り値としてfalseが返却されるため、注意が必要です。

あわせて読みたい
explode関数
PHPのexplode関数は区切り文字を指定して文字列を分割し、配列に変換する関数です。explode関数の構文や使い方をサンプルコード付きで解説します。

PHPのpreg_split関数を使って文字列を分割する

preg_split関数の第一引き数には、正規表現パターンをセットします。第二引き数へは分割したい文字列をセットします。

文字列を分割したいパターンを正規表現でセットしますが、カンマの場合は'/,/'をセットします。
カンマの前後に同じ記号を用いて挟むだけです。'%,%'でも'$,$'でも大丈夫です。

正規表現については、改めて詳しくご説明したいと思います。

 

preg_splitの使い方

preg_split( '区切る文字列の正規表現パターン', '分割したい文字列');

それでは区切る文字列の正規表現パターン'/,/''$,$''%,%'の3パターンを使って実行結果を確認してみたいと思います。

'/,/''$,$''%,%'の3パターンいずれも同じ結果になりました。

正規表現のカンマの前後に利用した/%などで分割されずに、カンマでのみ分割されていることがわかります。

まとめ

explode関数とpreg_split関数では同じ実行結果を得る事ができましたが、PHPでは単純な文字列で分割する場合は正規表現での検索の方が少々時間がかかります。カンマで区切って配列化するにはexplode関数の方が適しています。

しかし、複雑な条件で文字列を配列にしたい場合は、正規表現を用いた方が正確に区切る事ができるので、ここでは参考までに比較対象としてご紹介させて頂きました。

GeekHive採用サイト

関連記事