PHP会爆炸给定数组中的任何字符

时间:2014-10-21 18:18:58

标签: php arrays explode

有没有什么办法可以将字符串分隔符指定为数组中的任何字符? 例如:

 $delimiter = range("a","z");
 $str = "103a765g678d6f76h";
 $newstr = $explode($delimiter, $str);

导致$newstr成为[103,765,678,6,76]

我在google上找不到关于如何做到这一点的任何事情,我也无法想到任何事情

5 个答案:

答案 0 :(得分:3)

您可以使用preg_split和正则表达式来实现您想要的效果。

如果你必须首先在数组中implode()所需的字符,range()只是必要的,它只是将数组元素连接在一起形成一个字符串。

$delimiter = range("a","z");

$chars = implode($delimiter);
$str = "103a765g678d6f76h";
$newstr = preg_split("/[$chars]+/", $str, -1, PREG_SPLIT_NO_EMPTY);

Demo

答案 1 :(得分:1)

使用此

function multiexplode ($delimiters,$string) {

    $ready = str_replace($delimiters, $delimiters[0], $string);
    $launch = explode($delimiters[0], $ready);
    return  $launch;
}
 $delimiter = range("a","z");
     $str = "103a765g678d6f76h";

$text = "here is a sample: this text, and this will be exploded. this also | this one too :)";
$newstr = multiexplode($delimiter ,$str );

print_r($newstr);

答案 2 :(得分:1)

查看您的数据并使用preg_replace用单个分隔符替换字符范围。然后爆炸修改后的字符串。

答案 3 :(得分:0)

从PHP爆炸页面来看,这应该对你有用...不限于字母。

function multiexplode ($delimiters,$string) {

    $ready = str_replace($delimiters, $delimiters[0], $string);
    $launch = explode($delimiters[0], $ready);
    return  $launch;
}

$text = "here is a sample: this text, and this will be exploded. this also | this one too :)";
$exploded = multiexplode(array(",",".","|",":"),$text);

分隔符需要是一个数组。

了解更多on the PHP site ...

答案 4 :(得分:-1)

是使用:

preg_split()

delimiter = range("/a-z/");
 $str = "103a765g678d6f76h";
 $newstr =  preg_split($delimiter, $str);