有没有什么办法可以将字符串分隔符指定为数组中的任何字符? 例如:
$delimiter = range("a","z");
$str = "103a765g678d6f76h";
$newstr = $explode($delimiter, $str);
导致$newstr
成为[103,765,678,6,76]
我在google上找不到关于如何做到这一点的任何事情,我也无法想到任何事情
答案 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);
答案 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);