PHP 实现explort() 功能的详解
程序员文章站
2022-05-25 17:29:44
复制代码 代码如下:
<?php
/**
* php 实现explort() 功能的详解
*/
$str = ',1,2,3,4,321321,aaa,bbb';
function myexplode($seg,$str,$limit=0){
$_ret = array(0=>'');
$len = strlen($str);
$slen = strlen($seg);
$_limit = 0;
for($i=0; $i<$len; $i++){
if(substr($str,$i,$slen) == $seg ){
$_limit++;
$i += $slen-1;
continue;
}else{
$_ret[$_limit] .= $str[$i];
}
}
if($limit < 0 )
$_ret = array_slice($_ret, 0 , $limit );
else{
$_ret = $limit >= count($_ret) ? $_ret : array_merge(array_slice($_ret, 0 , $limit-1 ), array(implode( $seg , array_slice($_ret,$limit-1))));
}
return $_ret;
}
var_dump(myexplode("4",$str));
echo "<br>";
var_dump(explode("4",$str));
echo "<br>";
?>
支持 limit 为负。。分割符为字符串
复制代码 代码如下:
<?php
/**
* php 实现explort() 功能的详解
*/
$str = ',1,2,3,4,321321,aaa,bbb';
function myexplode($seg,$str,$limit=0){
$_ret = array(0=>'');
$len = strlen($str);
$slen = strlen($seg);
$_limit = 0;
for($i=0; $i<$len; $i++){
if(substr($str,$i,$slen) == $seg ){
$_limit++;
$i += $slen-1;
continue;
}else{
$_ret[$_limit] .= $str[$i];
}
}
if($limit < 0 )
$_ret = array_slice($_ret, 0 , $limit );
else{
$_ret = $limit >= count($_ret) ? $_ret : array_merge(array_slice($_ret, 0 , $limit-1 ), array(implode( $seg , array_slice($_ret,$limit-1))));
}
return $_ret;
}
var_dump(myexplode("4",$str));
echo "<br>";
var_dump(explode("4",$str));
echo "<br>";
?>
支持 limit 为负。。分割符为字符串
下一篇: java Spring 之IOC依赖注入