PHP中的explode()函数:将字符串分割成数组。
以上面的定义可以看出,在PHP中,explode()函数的主要作用就是将一个字符串根据指定的分隔符分隔成一个数组。也就是说,我们可以将一个字符串中的某个字符作为分隔符,然后将这个字符串分隔成一个数组,这样,我们就可以很方便的对数组进行操作,而不必对字符串进行繁琐的处理。
explode()函数的格式如下:
array explode ( string $separator , string $string [, int $limit ] )
其中,$separator表示分隔符,可以是一个字符,也可以是一个字符串;$string表示要分割的字符串;$limit表示返回的数组中最多包含多少个元素。如果这个参数为正整数,那么分隔后的数组中不会超过这个数目的元素。如果这个参数为负数,则返回除了最后-n个元素以外的其他所有元素。如果这个参数为0,那么将会返回包含所有元素的数组。
下面是一些例子,来说明explode()函数的用法:
1. 将一个字符串按照某个字符分隔成一个数组
$str = 'apple,banana,orange,grape';
$arr = explode(',', $str);
print_r($arr);
输出:
Array
(
[0] => apple
[1] => banana
[2] => orange
[3] => grape
)
2. 将一个字符串按照连续出现的空格分隔成一个数组
$str = 'apple banana orange grape';
$arr = explode(' ', $str);
print_r($arr);
输出:
Array
(
[0] => apple
[1] =>
[2] => banana
[3] => orange
[4] =>
[5] =>
[6] => grape
)
可以看到,如果使用空格作为分隔符,那么由于字符串中有连续的空格,所以在分隔后的数组中会出现空字符串元素。
如果我们不希望出现空字符串元素,可以加上一个判断语句来去掉空字符串:
$str = 'apple banana orange grape';
$arr = explode(' ', $str);
foreach ($arr as $key=>$value) {
if ($value == '') unset($arr[$key]);
}
print_r($arr);
输出:
Array
(
[0] => apple
[2] => banana
[3] => orange
[6] => grape
)
可以看到,这样就可以去掉空字符串元素了。
3. 将一个字符串按照一个字符串分隔成一个数组
$str = 'apple and banana or orange';
$arr = explode(' or ', $str);
print_r($arr);
输出:
Array
(
[0] => apple and banana
[1] => orange
)
可以看到,这里的分隔符不是单个字符,而是一个字符串。这种情况下,我们可以将整个字符串作为分隔符传给explode()函数。
4. 控制返回的数组的元素个数
$str = 'apple,banana,orange,grape';
$arr = explode(',', $str, 2);
print_r($arr);
输出:
Array
(
[0] => apple
[1] => banana,orange,grape
)
在这个例子中,我们给explode()函数加上了第三个参数,即元素个数的限制。这里我们将第三个参数设为2,表示返回的数组中最多包含2个元素。可以看到,返回的数组只包含了前两个元素,而后面的元素被忽略了。
在实际应用中,我们可以利用explode()函数来处理一些需要将字符串分割成数组的场景,比如解析URL参数中的各个键值对。但是需要注意的是,如果分隔符在字符串中很长,那么利用explode()函数进行分割可能会变得非常耗时。如果需要处理的字符串比较长,建议使用正则表达式进行字符串匹配。
