遇到多个deliminator时将字符串转换为数组

时间:2012-10-15 14:32:35

标签: php string

我想在遇到comma or semicolon时将字符串转换为数组。

例如字符串a , b ; c , d ; e将转换为

[0] = a 
[1] = b
[2] = c
[3] = d
[4] = e

我尝试使用explode,到目前为止工作正常,但我只能指定 一个分隔符,如explode(",",$str),而我想使用两个分隔符。即 逗号和分号。

我不知道是否可以将explode函数中的模式指定为第一个参数。

3 个答案:

答案 0 :(得分:3)

使用preg_split

$pieces = preg_split('@[,;]@', 'a,b;c,d;e');

答案 1 :(得分:0)

另一种方法:

$delimeters = array(',',';');

$arr = str_split($str);
/*
[0] = a 
[1] = ,
[2] = b
[3] = ;
[4] = c
[5] = ,
[6] = d ...
*/

$filterd = array_filter($arr, function($elem){ return (!in_array($elem , $delimeters)) });

基本上,我们将字符串拆分为数组,因此每个字符都是数组中的元素。 之后,我们过滤数组只返回不是分界符的字符(只需更新分隔符数组)。

答案 2 :(得分:0)

试试这个:

$var_save = strtok($string,',;');

echo $var_save;