在編程中經常使用到分割字符串爲數組或將數組拼接成字符串的功能,大家應該會想到explode和implode這2個函數,我個人時常混淆explode和implode的作用,今天特地來詳細學習這2個長得相似,功能相反的函數,免得日後再次混淆。
爲了學習這2個函數,特意下載了7.2版本的PHP手冊,也爲了日後方便深入學習PHP。
一、explode()
先來了解explode,作爲英語學渣之前一直讀錯,跟着有道詞典讀音反覆讀了很多遍纔讀對。
下面來看手冊函數介紹:
explode 使用一個字符串分割另一個字符串
array explode ( string $delimiter , string $string [, int $limit ] )
此函數返回由字符串組成的數組,每個元素都是 string 的一個子串,它們被字符串 delimiter 作爲邊界點分割出來。
看完手冊內容我們大概知道這個explode函數是用一個分隔符分割字符串的函數,參數由3部分組成,分隔符、字符串、分隔限制多說無益,直接動手用幾個例子來了解它把。
$string = 'a,b,c,d,e,f';
echo '<pre>';
var_dump(explode(',', $string));
var_dump(explode(',', $string,2));
var_dump(explode(',', $string,-1));
var_dump(explode(',', $string,0));
var_dump(explode(',', $string,1));
echo '</pre>';
運行結果:
對於分割字符串來說,2個參數足以使用。當然也會有特殊情況,第三個參數通過正負來達到不同的功能,也是看了手冊之後才知道explode還有這個功能。
如果第三個參數是正數的話,代表分割時只會分割成幾份,最後的一份會包含剩餘部分。
如果第三個參數是負數,則只分割除最後幾項的的字符串。
如果第三個參數是0,則和參數爲1一樣,返回整體字符串出來。
二、implode()
下面來看下手冊介紹:
implode — 將一個一維數組的值轉化爲字符串
string implode ( string $glue , array $pieces )
string implode ( array $pieces )
返回 用 一個連接符 將一維數組的值連接的一個字符串。
下面來看幾個例子:
$array = ['a','b','c','d','e'];
var_dump(implode('|',$array));
echo "<br>";
var_dump(implode($array));
echo "<br>";
var_dump(join('|',$array));
echo "<br>";
var_dump(join($array));
運行結果:
可以看到如果不傳入連接符的話,會將數組拆散直接連接成一個字符串。
還可以看到join函數和implode函數功能一樣,沒錯join是implode的一個別名。
三、總結
explode函數 使用一個分割符將一個字符串分割成一個數組
implode函數 使用一個分割符將一個數組拼接成一個字符串
join函數 implode函數的別名