我试图用多个分隔符爆炸()。
用分隔符:
以便,例如,如果我有一个数组:
<?php
$lol = array(
"Strawberry/Blueberry/Raspberry",
"Strawberry, Blueberry, Raspberry",
"Strawberry & Blueberry & Raspberry",
"Strawberry and Blueberry and Raspberry",
"Strawberry, Blueberry and Raspberry",
"Strawberry, Blueberry, Raspberry",
);
?>它将输出如下:
<?php
$lol = array(
array("Strawberry","Blueberry","Raspberry"),
array("Strawberry","Blueberry","Raspberry"),
array("Strawberry","Blueberry","Raspberry"),
array("Strawberry","Blueberry","Raspberry"),
array("Strawberry","Blueberry","Raspberry"),
array("Strawberry","Blueberry","Raspberry"),
);
?>有没有一种有效的方法来做到这一点?
发布于 2014-03-07 20:36:51
for($i=0;$i<count($lol);$i++){
$lol[$i] = preg_split("@(\s*and\s*)?[/\s,&]+@", $lol[$i]);
}发布于 2014-03-07 20:36:14
可以将分隔符替换为explode()将接受的通用分隔符:
foreach($lol as $key => $current) {
$bits = explode(',', stri_replace(array('/', '&', 'and'), ',', $current));
$lol[$key] = $bits;
}发布于 2014-03-07 20:34:59
您可以使用preg_split() -然后使用正则表达式来表示"a或b或c“。
示例:
<?php
$lol = array(
"Strawberry/Blueberry/Raspberry",
"Strawberry, Blueberry, Raspberry",
"Strawberry & Blueberry & Raspberry",
"Strawberry and Blueberry and Raspberry",
"Strawberry, Blueberry and Raspberry",
"Strawberry, Blueberry, Raspberry",
);
$s = "/\/|, | & | and /";
foreach ($lol as $v) {
print_r(preg_split($s, $v));
}
?>输出:
Array
(
[0] => Strawberry
[1] => Blueberry
[2] => Raspberry
)
Array
(
[0] => Strawberry
[1] => Blueberry
[2] => Raspberry
)
Array
(
[0] => Strawberry
[1] => Blueberry
[2] => Raspberry
)
Array
(
[0] => Strawberry
[1] => Blueberry
[2] => Raspberry
)
Array
(
[0] => Strawberry
[1] => Blueberry
[2] => Raspberry
)
Array
(
[0] => Strawberry
[1] => Blueberry
[2] => Raspberry
)https://stackoverflow.com/questions/22260140
复制相似问题