Advertisement
Papadopolis

Untitled

Jul 8th, 2011
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.22 KB | None | 0 0
  1. <?php
  2. /*
  3. "recriando a roda", função explode()
  4. By: Papadópolis (@papadopolis)
  5. */
  6. function _explode($op,$str,$lim = null) {
  7.     $output = array();
  8.     preg_match_all("/(.*?$op|.*?$)/i",$str,$vals);
  9.     unset($vals[0],$vals[1][count($vals[1])-1]);
  10.     foreach($vals as $ind => $val)
  11.         foreach($val as $exe)
  12.             $output[] = str_replace($op,"",$exe);
  13.     if($lim !== null) {
  14.         if($lim>=0) {
  15.             $alg = array();
  16.             $tmp = $output;
  17.            
  18.             $co = 0;
  19.             for(;;) {
  20.                 $alg[] = $output[$co];
  21.                 unset($tmp[$co]);
  22.                 if($co == $lim-1) {
  23.                     foreach($tmp as $val)
  24.                         $alg[$co] .= sprintf("%s%s",$op,$val);
  25.                     break;
  26.                 }
  27.                 ++$co;
  28.             }
  29.            
  30.             $output = $alg;
  31.         } else {
  32.             $f = count($output)-1;
  33.             $l = $f-substr($lim,1);
  34.             for(;;) {
  35.                 unset($output[$f]);
  36.                 --$f;
  37.                 if($f == $l) break;
  38.             }
  39.         }
  40.     }
  41.     return $output;
  42. }
  43.  
  44. $str = "a,e,i,o,u,1,2,3,4,5";
  45. $str = _explode(",",$str,3);
  46. print_r(array_values($str));
  47. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement