之所以做這個,是因為這兩個函式的作用很像,都是把字串轉換成陣列。
從下面的例子可以看出,生成的陣列是有對應的順序的。
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo
$pieces[0]; // piece1
echo
$pieces[1]; // piece2
// 示例 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo
$user; // foo
echo
$pass; // *
注意的是,如果第乙個引數為空字串的話,就會產生warning。
var_dump( explode('','asdasd') );
//warning: explode(): empty delimiter in /tmp/e80c9663-e392-4f81-8347-35726052678f/code on line 3
//bool(false)
(php 4, php 5)注意的是上面並沒有php 7,也就是說split函式並不支援php 7.split — 用正規表示式將字串分割到陣列中
$date = "04/30/1973";
list($month, $day, $year) = split ('[/.-]', $date);
echo
"month: $month; day: $day; year: $year
\n";
//php 7 下的報錯
fatal error: uncaught error: call to undefined function
split
()in /tmp/4d38c290-b4cb-43f5-846a-9fa90784a090/code:4
stack
trace:
#0 thrown in /tmp/4d38c290-b4cb-43f5-846a-9fa90784a090/code on line 4
//php 5.6 下返回正常
month: 04; day: 30; year: 1973
split的第乙個引數為正規表示式,也就是說,如果想要匹配特殊字元,需要轉義一下。
$arr='2016\8\11';
$rearr = split ('[/\]', $arr);
var_dump($rearr)
/*array(3)
*/
也正是因為要使用正規表示式 pattern 的語法,所以搜尋的速度不會很快。
preg_split() 函式使用了 perl 相容正規表示式語法,通常是比 split() 更快的替代方案。如果不需要正規表示式的威力,則使用 explode() 更快,這樣就不會招致正規表示式引擎的浪費可能效率的原因導致了php 7 中直接放棄了這個函式吧。
PHP 函式explode和split的區別
之所以做這個,是因為這兩個函式的作用很像,都是把字串轉換成陣列。從下面的例子可以看出,生成的陣列是有對應的順序的。pizza piece1 piece2 piece3 piece4 piece5 piece6 pieces explode pizza echo pieces 0 piece1 ech...
PHP陣列和explode函式示例總結
例1 echo count province 陣列成員個數 echo if is array province echo for index 0 index 例2 source hello1,hello2,hel 按逗號分離字串 hello explode source for 例3 分隔scjuy...
explode 函式和implode 函式
explode 函式把字串分割為陣列 explode separator,string,limit separator 必需。規定在 分割字串。string 必需。要分割的字串。limit 可選。規定所返回的陣列元素的最大數目。例子 str hello world.it s a beautiful ...