explodeとsplitの違い
PHPで文字列を分割する場合に使用する関数でexplodeとsplitというものがあります。以下が使用例です。
<?php $str = 'a-b-c'; $ary = explode('-', $str); var_dump($ary); // array('a', 'b', 'c')
このように、第2引数で与えられた文字列を、第1引数の文字列で分割する関数です。今までsplitはexplodeのエイリアスだとばっかり思い込んでたのですが、先日
<?php split('?', $str);
とやったら
Warning: split() [function.split]: REG_BADRPT in
のようにエラーがでてしまいました。調べてみたら、どうやらexplodeとsplitは同じではなく、第1引数でとる区切り文字は正規表現のようです。「?」は正規表現の特殊文字なのでエラーが出たわけです。
splitはereg系みたいですが、preg_splitという関数もあり、実行速度だと
explode() > preg_split() > split()
みたいですね。
ちなみにexplodeの逆で、implodeとjoinという配列をくっつける関数があるのですが、こちらは同一のようです。
http://php.benscom.com/manual/ja/function.explode.php
http://php.benscom.com/manual/ja/function.split.php