如何用分隔符拆分字符串?

时间:2013-06-04 05:47:31

标签: php arrays string delimiter

我正在调用http://rolz.org/api/?4d20.json,而detail元素看起来是一个格式为[ 12 +14 +2 +8 ]的字符串。

我希望能够将每个值与此字符串隔离,以便在数组中单独显示。起初我在元素上使用str_split(),但我很快就意识到没有标准的值长度 - 结果可能是1,2,3或更长的长度。唯一的常见分隔符是加号。

如何以所述格式获取字符串值并将其放在一个简单的索引数组中?

我认为这是一项常见的琐事,但我不知道该怎么做。我试过了preg_splitstr_splitpreg_split不想让我在加号和/或括号上执行。

4 个答案:

答案 0 :(得分:3)

我建议采用以下方法:

  1. 使用trim()过滤[]和“空格”字符;
  2. 使用explode()+字符分割字符串值;
  3. 使用array_map() + trim()来清理每个值。

  4. $value = ' [ 12 +14 +2 +8 ] ';
    
    $result = explode('+', trim($value, '[] '));
    
    $result = array_map('trim', $result);
    
    var_dump($result);
    

    节目:

    array(4) {
      [0]=>
      string(2) "12"
      [1]=>
      string(2) "14"
      [2]=>
      string(1) "2"
      [3]=>
      string(1) "8"
    }
    

答案 1 :(得分:1)

<?php
    $detail = " [ 14 +20 +14 +16 ] ";
    $arr = explode('+',str_replace(array(" ","[","]"),"",$detail));
    print_r($arr);
?>

显示

Array ( [0] => 14 [1] => 20 [2] => 14 [3] => 16 )

答案 2 :(得分:0)

使用explode

$result = explode('+', $yourString);

答案 3 :(得分:-1)

从SanKalp Mishra的回答中,我只想补充一些内容。

使用爆炸

$result = explode("+", $yourString);

$firstStr = $result[0];
$secondStr = $result[1];
$thirdStr = $result[2];
$fourthStr = $result[3];

已准备好插入数组中。