PHP:将string拆分成数组,就像爆炸没有分隔符一样

我有一个string,如:

“0123456789”

并需要将每个字符拆分成一个数组。

我为了地狱而试过:

explode('', '123545789'); 

但它给了我很明显的: 警告:在爆炸中没有定义分隔符) ..

我怎么会遇到这个? 我看不到任何方法,特别是只是一个function

 $array = str_split("0123456789bcdfghjkmnpqrstvwxyz"); 

str_split采用可选的第二参数,即块长度(默认值为1),所以你可以做如下的事情:

 $array = str_split("aabbccdd", 2); // $array[0] = aa // $array[1] = bb // $array[2] = cc etc ... 

你也可以把你的string的一部分作为一个数组来处理:

 $string = "hello"; echo $string[1]; // outputs "e" 

你想达到什么目的? 您可以像访问数组一样访问string中的字符:

 $s = 'abcd'; echo $s[0]; 

打印“ a

尝试这个:

 $str = '123456789'; $char_array = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY); 

str_split可以做到这一点。 请注意,PHP中的string可以像字符数组一样被访问,在大多数情况下,您不需要将string拆分为“新”数组。

以下是一个可用于多字节(UTF-8)string的示例。

 $str = 'äbcd'; // PHP 5.4.8 allows null as the third argument of mb_strpos() function do { $arr[] = mb_substr( $str, 0, 1, 'utf-8' ); } while ( $str = mb_substr( $str, 1, mb_strlen( $str ), 'utf-8' ) ); 

它也可以用preg_split()preg_split( '//u', $str, null, PREG_SPLIT_NO_EMPTY ) )来完成,但与上面的例子不同的是,不pipestring的大小如何,它的运行速度几乎一样快, preg_split()是小string快,但大的慢很多。

尝试这个:

  $str = '546788'; $char_array = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY); 

尝试这个:

 $str = "Hello Friend"; $arr1 = str_split($str); $arr2 = str_split($str, 3); print_r($arr1); print_r($arr2); 

上面的例子会输出:

 Array ( [0] => H [1] => e [2] => l [3] => l [4] => o [5] => [6] => F [7] => r [8] => i [9] => e [10] => n [11] => d ) Array ( [0] => Hel [1] => lo [2] => Fri [3] => end ) 

如果你想分割string,最好使用:

 $array = str_split($string); 

当你有分隔符,分隔string,你可以尝试,

 explode('' ,$string); 

您可以在爆炸内的第一个variables中传递分隔符,例如:

 explode(',',$string); 
 $array = str_split("$string"); 

将执行工作很好,但如果你想保留在string中的特殊字符,并且你想要对它们进行一些操作,那么我会使用

 do { $array[] = mb_substr( $string, 0, 1, 'utf-8' ); } while ( $string = mb_substr( $string, 1, mb_strlen( $string ), 'utf-8' ) ); 

因为对于我个人的一些用途,在特殊字符出现问题时显示它更可靠