PHP 实现explort() 功能

<?php

/**

 * @author:xiaojiang

 * 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)