把一个字符串分割成数组 php_PHP:将字符串拆分为数组,就像没有delimi的爆炸一样...

PHP:将字符串拆分为数组,就像没有delimi的爆炸一样

我有一个字符串,如:

“0123456789”

并需要将EACH字符拆分为数组。

我为它的地狱尝试过:

explode('', '123545789');

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

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

9个解决方案

126 votes

$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"

Erik answered 2019-06-19T18:33:31Z

19 votes

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

$s = 'abcd';

echo $s[0];

打印'a'

nategood answered 2019-06-19T18:34:02Z

6 votes

试试这个:

$str = '123456789';

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

Conan answered 2019-06-19T18:34:20Z

5 votes

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

Soufiane Hassou answered 2019-06-19T18:34:44Z

4 votes

这是一个适用于多字节(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( '//u', $str, null, PREG_SPLIT_NO_EMPTY )(preg_split( '//u', $str, null, PREG_SPLIT_NO_EMPTY ))来完成,但与上面的例子不同,无论字符串的大小如何,它的运行速度几乎一样快,preg_split()对于小字符串来说速度很快,但对于大字符串则要快得多。

Danijel answered 2019-06-19T18:35:16Z

2 votes

试试这个:

$str = '546788';

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

Rekha answered 2019-06-19T18:35:35Z

2 votes

试试这个:

$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

)

Reza Roshan answered 2019-06-19T18:35:56Z

0 votes

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

$array = str_split($string);

如果你有分隔符,分隔字符串,你可以尝试,

explode('' ,$string);

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

explode(',',$string);

user3470929 answered 2019-06-19T18:36:34Z

0 votes

$array = str_split("$string");

实际上工作得很好,但是如果你想保留那个字符串中的特殊字符,并且你想对它们做一些操作,我会用

do {

$array[] = mb_substr( $string, 0, 1, 'utf-8' );

} while ( $string = mb_substr( $string, 1, mb_strlen( $string ), 'utf-8' ) );

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

Nedzad Ganic answered 2019-06-19T18:37:05Z

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值