web-dev-qa-db-ja.com

split()とexplode()の違いは何ですか?

split() のPHPマニュアルには、

この関数は [〜#〜] deprecated [〜#〜] PHP 5.3.0以降です。この機能に依存することは強くお勧めしません...代わりにexplode()を使用してください。

しかし、split()explode()の違いを見つけることはできません。 join()は非推奨ではないので、何が得られますか?

32

非推奨になった理由は

  • explode()は、正規表現に基づいて分割されないため、文字列を正規表現パーサーで分析する必要がないため、かなり高速です。
  • preg_split()はより高速で、正規表現の分割にPCRE正規表現を使用します

join()implode()は相互のエイリアスであるため、違いはありません。

52
BoltClock

split は正規表現を使用し、 explode は固定文字列を使用します。正規表現が必要な場合は、 preg_split 、これはPCREを使用します(正規表現パッケージはPHP標準ライブラリ全体で優先されるようになりました)。

4

両方の関数は、文字列を分割するために使用されます。

ただし、Splitは、正規表現を使用して文字列を分割するために使用されます。

一方、Explodeは、別の文字列を使用して文字列を分割するために使用されます。

E.g explode( "this"、 "this is a string"); 「Is a string」を返します

E.g Split( "+"、 "This + is a string");

1
user386431

split()では、正規表現を使用して文字列を分割できます。一方、explode()は文字列を文字列で分割します。 preg_split は、正規表現が必要な場合のはるかに高速な代替手段です。

1
Russell Dias

どちらも文字列を配列に分割するために使用されますが、split()は文字列を使用するのに対し、explode()は分割にパターンを使用します。 explode()は、正規表現に基づく文字列と一致しないため、split()よりも高速です。

1
Sampath

split()関数は、正規表現を使用して文字列を配列に分割し、配列を返します。

explode()関数は、ストリングをストリングごとに分割します。

例えば:

<?php
    $split_array=split(':','I:P:S');
    $explode_array=explode('and','I and P and S');
    print_r($split_array);
    print_r($explode_array);
?>

結果は

Array ( [0] => I [1] => P [2] => S ) 
Array ( [0] => I [1] => P [2] => S )

注:関数split()は、PHP 5.3.0で廃止され、PHP 7.0.0で削除されました

0
rohini shinde