PHPでカンマ区切りの文字列を配列に変換する方法!
PHPで文字列を分割して配列にする方法はいくつがありますが、ここではカンマ区切りの文字列を配列に変換する方法について、解説します。
PHPでカンマ区切りの文字列を配列に変換したい
PHPで文字列を分割するにはstr_split
関数・explode
関数・preg_split
関数があります。
str_split
関数は、文字列を文字のバイト数で分割する関数です。今回のカンマ区切りで文字列を分割した配列にするには適していません。
explode
関数は指定文字列で分割する関数で、preg_split
関数は正規表現の指定文字列で分割する関数です。
今回はこの2つの関数について解説したいと思います。
PHPでカンマ区切りの文字列を配列に変換する方法
explode
関数とpreg_split
関数を使って下記の文字列$variables
をカンマ区切りで分割してみます。
$variables
$variables = 'あいうえお,かきく%/$けこ,abcde,12345,00';
PHPのexplode関数を使って文字列を分割する
explode
関数は下記の様に使用します。第一引き数へは分割の区切り文字列を、第二引き数には分割したい文字列をセットします。
explode関数の使い方
explode( '区切り文字列', '分割したい文字列');
実行結果をサンプルコードで確認しまみしょう。
配列$variables
がカンマ区切りで配列化されています。
分割の区切り文字列が空の文字列の場合は、PHPの警告が発生し、関数の戻り値としてfalseが返却されるため、注意が必要です。
PHPのpreg_split関数を使って文字列を分割する
preg_split
関数の第一引き数には、正規表現パターンをセットします。第二引き数へは分割したい文字列をセットします。
文字列を分割したいパターンを正規表現でセットしますが、カンマの場合は'/,/'
をセットします。
カンマの前後に同じ記号を用いて挟むだけです。'%,%'
でも'$,$'
でも大丈夫です。
正規表現については、改めて詳しくご説明したいと思います。
preg_splitの使い方
preg_split( '区切る文字列の正規表現パターン', '分割したい文字列');
それでは区切る文字列の正規表現パターンへ'/,/'
・'$,$'
・'%,%'
の3パターンを使って実行結果を確認してみたいと思います。
'/,/'
・'$,$'
・'%,%'
の3パターンいずれも同じ結果になりました。
正規表現のカンマの前後に利用した/
や$
・%
などで分割されずに、カンマでのみ分割されていることがわかります。
まとめ
explode
関数とpreg_split
関数では同じ実行結果を得る事ができましたが、PHPでは単純な文字列で分割する場合は正規表現での検索の方が少々時間がかかります。カンマで区切って配列化するにはexplode
関数の方が適しています。
しかし、複雑な条件で文字列を配列にしたい場合は、正規表現を用いた方が正確に区切る事ができるので、ここでは参考までに比較対象としてご紹介させて頂きました。