splitとexplodeは、文字列を分解して配列で返すという意味では、同じ動作をする関数です。
split ( 区切り文字, 分解元文字, [配列の数] )
explode( 区切り文字, 分解元文字, [配列の数] )
動作の違いは、区切り文字に正規表現を使えるか/使えないかの違いになります。
split ⇒ 正規表現利用可能
explode ⇒ 正規表現不可
では、どちらを使えば良いのでしょうか。
二つの関数の違いを考えると、正規表現を使えない分、explodeの方が高速な筈です。
ということは、
正規表現を使う場合 ⇒ split
正規表現を使わない場合 ⇒ explode
と考えて良いと思います。
【例】
$moji = "a,b,c,d,e,f,g";
$moji_array = explode( ",", $moji );
var_dump( $moji_array );
$moji2 = "a|b,c.d|e,f,g";
$moji_array2 = split( "[|,.]", $moji2 );
var_dump( $moji_array2 );
【実行結果】
array(7) {
[0]=> string(1) "a"
[1]=> string(1) "b"
[2]=> string(1) "c"
[3]=> string(1) "d"
[4]=> string(1) "e"
[5]=> string(1) "f"
[6]=> string(1) "g"
}
array(7) {
[0]=> string(1) "a"
[1]=> string(1) "b"
[2]=> string(1) "c"
[3]=> string(1) "d"
[4]=> string(1) "e"
[5]=> string(1) "f"
[6]=> string(1) "g"
}
split ( 区切り文字, 分解元文字, [配列の数] )
explode( 区切り文字, 分解元文字, [配列の数] )
動作の違いは、区切り文字に正規表現を使えるか/使えないかの違いになります。
split ⇒ 正規表現利用可能
explode ⇒ 正規表現不可
では、どちらを使えば良いのでしょうか。
二つの関数の違いを考えると、正規表現を使えない分、explodeの方が高速な筈です。
ということは、
正規表現を使う場合 ⇒ split
正規表現を使わない場合 ⇒ explode
と考えて良いと思います。
【例】
$moji = "a,b,c,d,e,f,g";
$moji_array = explode( ",", $moji );
var_dump( $moji_array );
$moji2 = "a|b,c.d|e,f,g";
$moji_array2 = split( "[|,.]", $moji2 );
var_dump( $moji_array2 );
【実行結果】
array(7) {
[0]=> string(1) "a"
[1]=> string(1) "b"
[2]=> string(1) "c"
[3]=> string(1) "d"
[4]=> string(1) "e"
[5]=> string(1) "f"
[6]=> string(1) "g"
}
array(7) {
[0]=> string(1) "a"
[1]=> string(1) "b"
[2]=> string(1) "c"
[3]=> string(1) "d"
[4]=> string(1) "e"
[5]=> string(1) "f"
[6]=> string(1) "g"
}