PHPで文字列分解の罠

サラトガIT日記 > PHP > PHPで文字列分解の罠 PHPで文字列分解の罠

※実経験の記憶を頼りに自宅の PC 環境(VMWareなど)で再現している内容もあるのでご注意下さい

2009-10-25

 

PHP の文字列分解(例えばカンマ区切りの文字列をカンマごとに分解する)に split()関数を使っていましたが、正規表現を使わない区切り指定の場合は explode()関数を使用した方が 3 倍ほど速い(教えてくれた知り合いの50万回のループ検証結果)です。

私が勘違いして、正規表現を必要としない場合にも split() を使用していたのは、split() が explode() のエイリアスだと思っていたこと。エイリアスなのは、文字列連結の方の implode() と join() の関係でした。

結果的に、正規表現を必要としない文字列分解は explode() を、正規表現を必要とする文字列分解は Perl 互換の preg_split() を使うと良さそうです。split() は PHP6.0 からなくなりますので。

[split]
$s = "A-B-C-D-E";
$arrays = split("-", $a);

[explode]
$s = "A-B-C-D-E";
$arrays = explode("-", $a);

関連記事

上記の記事に関連する記事(最新の10件)です。