php explode 函数使用指定字符(串)分割另一个字符串,返回由分割后的子字符串组成的数组。
语法
explode(string $separator, string $string, int $limit = PHP_INT_MAX): array
参数
separator
(必须) 用来确定分割位置的字符(串)。
string
(必须)要分割的字符串。
limit
(可选)规定返回的数组中元素数量。
如果没有设置limit
,那么默认会返回包含所有元素的数组。
如果设置了 limit
参数并且是正数,则返回的数组包含最多 limit
个元素,而最后那个元素将包含 string
的剩余部分。
如果 limit
参数是负数,则返回除了最后的 –limit
个元素外的所有元素。
如果 limit
是 0,则会被当做 1。
返回值
此函数返回由字符串组成的数组,每个元素都是 string
的一个子串,它们被字符串 separator
作为边界点分割出来。
如果 separator
为空字符串(””),explode() 将抛出 ValueError。 如果 separator
所包含的值在 string
中找不到,并且使用了负数的 limit
, 那么会返回空的 array, 否则返回包含 string
单个元素的数组。 如果 separator
值出现在了 string
参数的开头或末尾, 将在返回数组相应的头部或尾部添加空值。
示例
示例 #1 explode() 例子
<?php
// 示例 1
$url = "www.02405.com";
$arr = explode(".", $url);
echo $arr[0]; // www
echo $arr[1]; // 02405
// 示例 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *
?>
示例 #2 explode() return examples
<?php
/*
字符串内不包含分隔字符时,会简单返回只有一个原始字符串元素的 array。
请注意,如果要分割的字符串为空时,会返回带有一个空元素的 array 而不是一个空的 array,参见本示例中的 input3。
*/
$input1 = "hello";
$input2 = "hello,there";
$input3 = '';
var_dump( explode( ',', $input1 ) );
var_dump( explode( ',', $input2 ) );
var_dump( explode( ',', $input3 ) );
?>
以上示例会输出:
array(1) ( [0] => string(5) "hello" ) array(2) ( [0] => string(5) "hello" [1] => string(5) "there" ) array(1) ( [0] => string(0) "" )
示例 #3 limit
参数的例子
<?php
$str = 'one|two|three|four';
// 正数的 limit
print_r(explode('|', $str, 2));
// 负数的 limit
print_r(explode('|', $str, -1));
?>
以上示例会输出:
Array ( [0] => one [1] => two|three|four ) Array ( [0] => one [1] => two [2] => three )
相关函数
php implode 函数:将数组元素用指定字符(串)连接,返回连接后的字符串。
implode 函数和 explode 函数是对应函数,作用正好相反。