if(!function_exists('str_split')){
   function str_split($string,$split_length=1){
       $count = strlen($string); 
       if($split_length < 1){
           return false; 
       } elseif($split_length > $count){
           return array($string);
       } else {
           $num = (int)ceil($count/$split_length); 
           $ret = array(); 
           for($i=0;$i<$num;$i++){ 
               $ret[] = substr($string,$i*$split_length,$split_length); 
           } 
           return $ret;
       }     
   } 
}$ret[] = substr($string,$i*$split_length,$split_length); 
这里,当每次for循环时,不就把上一次存入的字符给刷掉了吗?

解决方案 »

  1.   

    $ret[]代表从0开始键值自动增长
      

  2.   

    晕,你这样写$ret[]不就是个数组吗,默认数组,下标自动增加!
      

  3.   

     for($i=0;$i <$num;$i++){ 
                  $ret[] = substr($string,$i*$split_length,$split_length); 
              } 这个跟c语言不一样的,PHP这样写,默认下标会从0开始递增,不会自动覆盖的。
    因为你的$ret = array(); 是数组。
      

  4.   

    $ret[] 是一个数组,LZ 可以 print_r($ret[]) 看看