爆炸带有两个分隔符的字符串

时间:2014-11-04 23:48:09

标签: php arrays string

首先,我已经看到了以下问题:

还有更多。如果我有这样的输入:

A@B#C
a@b#c

对于每一行,我有两个分隔符@#,我希望以这种方式将它们分隔为数组:

Array
(
    [0] => A
    [1] => B
    [2] => C
)

Array
(
    [0] => a
    [1] => b
    [2] => c
)

我有这样的循环代码:

foreach (explode(PHP_EOL, $input) as $line) {
    $line = explode("@", $line);
    $line[1] = explode("#", $line[1]);
}

我知道我在做什么是错的。我得到的输出是:

Array
(
    [0] => A
    [1] => Array
        (
            [0] => B
            [1] => C
        )
)

Array
(
    [0] => a
    [1] => Array
        (
            [0] => b
            [1] => c
        )
)

我没有想到别的什么,所以,有人可以指导我如何将字符串拆分到同一个数组中吗? ps:我不想用

1 个答案:

答案 0 :(得分:2)

我首选的解决方案是使用preg_split,但由于问题明确禁止使用正则表达式,所以如何做到这一点:

$line = explode("#", str_replace("@", "#", $line));

基本上,只需用分隔符2替换所有出现的分隔符1,然后在分隔符2上分割。