php 实现explode
PHP 实现 explode 函数
PHP 的 explode 函数用于将字符串按指定的分隔符拆分为数组。以下是其基本用法和实现方式。
函数语法
array explode(string $delimiter, string $string, int $limit = PHP_INT_MAX)
$delimiter:分隔符,用于拆分字符串。$string:待拆分的字符串。$limit:可选参数,控制返回数组的最大长度。
基本用法示例
$str = "apple,banana,orange";
$arr = explode(",", $str);
print_r($arr);
输出:
Array
(
[0] => apple
[1] => banana
[2] => orange
)
限制数组长度
通过 $limit 参数可以限制返回数组的元素数量:
$str = "apple,banana,orange";
$arr = explode(",", $str, 2);
print_r($arr);
输出:
Array
(
[0] => apple
[1] => banana,orange
)
处理空字符串
如果分隔符为空字符串 (""),explode 会返回 false:
$str = "apple,banana,orange";
$arr = explode("", $str);
var_dump($arr); // bool(false)
自定义实现
以下是一个简单的自定义 explode 函数实现:
function customExplode($delimiter, $string, $limit = PHP_INT_MAX) {
if ($delimiter === "") {
return false;
}
$result = [];
$temp = "";
$count = 0;
$len = strlen($string);
$dlen = strlen($delimiter);
for ($i = 0; $i < $len; $i++) {
$match = true;
for ($j = 0; $j < $dlen; $j++) {
if ($i + $j >= $len || $string[$i + $j] != $delimiter[$j]) {
$match = false;
break;
}
}
if ($match && $count < $limit - 1) {
$result[] = $temp;
$temp = "";
$i += $dlen - 1;
$count++;
} else {
$temp .= $string[$i];
}
}
$result[] = $temp;
return $result;
}
使用示例
$str = "apple,banana,orange";
$arr = customExplode(",", $str);
print_r($arr);
输出:
Array
(
[0] => apple
[1] => banana
[2] => orange
)
注意事项
- 分隔符不能为空字符串,否则会返回
false。 $limit为负数时,会返回除最后abs($limit)个元素外的所有部分。- 如果分隔符未找到,返回包含原字符串的数组。







