75

我有一个字符串,例如:

“0123456789”

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

我,为了它,尝试:

explode('', '123545789');

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

我怎么会遇到这个?我看不到任何方法,尤其是一个函数。

4

9 回答 9

133
$array = str_split("0123456789bcdfghjkmnpqrstvwxyz");

str_split采用可选的第二个参数,即块长度(默认为 1),因此您可以执行以下操作:

$array = str_split("aabbccdd", 2);

// $array[0] = aa
// $array[1] = bb
// $array[2] = cc  etc ...

您还可以通过将其视为数组来获取部分字符串:

$string = "hello";
echo $string[1];

// outputs "e"
于 2010-01-31T02:31:59.077 回答
19

您可以像访问数组一样访问字符串中的字符:

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

打印'一个'

于 2010-01-31T02:34:13.593 回答
7

尝试这个:

$str = '123456789';
$char_array = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
于 2010-01-31T02:34:48.397 回答
5

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

于 2010-01-31T02:34:25.273 回答
4

这是一个适用于多字节 (UTF-8) 字符串的示例。

$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 )) 来完成,但与上面的示例不同,无论字符串的大小如何,它的运行速度几乎一样快preg_split(),小字符串速度快,但大字符串速度慢很多。

于 2015-05-27T19:50:01.373 回答
2

尝试这个:

    $str = '546788';
    $char_array = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
于 2014-12-23T06:49:10.797 回答
1

尝试这个:

$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
)
于 2013-02-27T14:41:45.863 回答
0

如果要拆分字符串,最好使用:

$array = str_split($string);

当您有分隔字符串的分隔符时,您可以尝试,

explode('', $string);

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

explode(',', $string);
于 2015-02-21T05:38:55.567 回答
0
$array = str_split("$string");

实际上可以很好地工作,但是如果您想保留该字符串中的特殊字符,并且想对它们进行一些操作,那么我会使用

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

因为对于我的一些个人用途,当出现特殊字符问题时,它已被证明更可靠。

于 2017-02-23T23:15:46.770 回答