【问题标题】:How to explode array by multiple delimiter characters如何通过多个分隔符分解数组
【发布时间】:2011-11-12 23:01:52
【问题描述】:

我有一个这样的字符串:

abc=1&def=abc||abc=xyz&xyz=1

如何通过&|| 字符来分解它?

例如,在这种情况下,数组应该是

[0] => 'abc=1'
[1] => 'def=abc'
[2] => 'abc=xyz'
[3] => 'xyz=1'

【问题讨论】:

    标签: php arrays


    【解决方案1】:

    使用preg_split:

    $str = 'abc=1&def=abc||abc=xyz&xyz=1';
    $arr = preg_split('#(&|[\|]{2})#', $str);
    var_dump($arr);
    

    会产生

    array
      0 => string 'abc=1' (length=5)
      1 => string 'def=abc' (length=7)
      2 => string 'abc=xyz' (length=7)
      3 => string 'xyz=1' (length=5)
    

    【讨论】:

    • 我相信,您不必在班级内逃避管道。我会选择\|\|[|]{2}
    • 我用了这个,因为preg_quote('|')产生\|,只是为了确定。
    • 顺便说一句,你也可以使用这个模式:'#(&|\|\|)#'
    【解决方案2】:
    parse_str(str_replace('||','&',$str),$arr);
    

    【讨论】:

    • 顺便说一下,这会产生与他想要的不同的数组。
    • 嗯,好地方。但是,我想说这与他写的不同,但更有可能是他想要的
    猜你喜欢
    • 2015-08-18
    • 1970-01-01
    • 1970-01-01
    • 2019-05-11
    • 2013-10-30
    • 2012-03-15
    • 2015-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多