復制代碼 代碼如下:
<?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 為負。。分割符為字符串