在编程中经常使用到分割字符串为数组或将数组拼接成字符串的功能,大家应该会想到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函数的别名