在两个不同的位置拆分/分解PHP字符串

时间:2013-06-01 01:22:02

标签: php arrays string explode

我在PHP中有一个字符串。

$str = "1.testone (off) 2.testtwo (off) 3.testthree (off)";

我需要在“。”之间拆分字符串。和“(”。

我知道我可以将字符串拆分为“。”用:

$str1 = explode('.', $str);

这会将字符串放入一个数组中,数组项位于“。”之间。有没有办法在“。”之间创建一个包含数组项的数组。和“(”,要么切掉其余部分,要么将其保留在数组中,但要在两个不同的位置爆炸。

3 个答案:

答案 0 :(得分:2)

在爆炸中使用爆炸,并结合foreach循环。

$str = "1.testone (off) 2.testtwo (off) 3.testthree (off)";
$explode1 = explode('.', $str);
$array = array();

foreach($explode1 as $key => $value) {
$explode2 = explode('(', $explode1[$key]);
array_push($array, $explode2[0]);
}

print_r($array);

产地:

  

数组([0] => 1 [1] => testone [2] => testtwo [3] => testthree)

答案 1 :(得分:1)

<?php
    $str = "1.testone (off) 2.testtwo (off) 3.testthree (off)";

    $result = preg_split("/\.|\(/", $str);

    print_r($result);
?>

结果:

Array
(
    [0] => 1
    [1] => testone 
    [2] => off) 2
    [3] => testtwo 
    [4] => off) 3
    [5] => testthree 
    [6] => off)
)

答案 2 :(得分:1)

$str = "1.testone (off) 2.testtwo (off) 3.testthree (off)";
$arr = array();
foreach(explode('.',$str) as $row){
    ($s=strstr($row,'(',true)) && $arr[] = $s;
}
print_r($arr);
//Array ( [0] => testone [1] => testtwo [2] => testthree )