首先,我已经看到了以下问题:
还有更多。如果我有这样的输入:
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:我不想用regex!
答案 0 :(得分:2)
我首选的解决方案是使用preg_split
,但由于问题明确禁止使用正则表达式,所以如何做到这一点:
$line = explode("#", str_replace("@", "#", $line));
基本上,只需用分隔符2替换所有出现的分隔符1,然后在分隔符2上分割。