【问题标题】:Exploding a String with Two Delimiters用两个分隔符分解字符串
【发布时间】:2014-11-04 23:48:09
【问题描述】:

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

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

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个字符串还是2个?
  • @Rizier123 我不明白。 1 或 2 是什么意思?
  • 是这个:$input1 = "A@B#C"; $input2 = "a@b#c"; 还是这个:$input = "A@B#C a@b#c";
  • @Rizier123 假设为单行。现在检查完整的代码。它在一个循环中! :)
  • 哇。刚刚意识到我有多累,我需要睡觉。我的意思是说“你为什么不想使用正则表达式” :) Sheesh。准备睡觉了。

标签: regex php arrays string


【解决方案1】:

我首选的解决方案是使用preg_split,但由于该问题明确禁止使用正则表达式,那么这样做怎么样:

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

所以基本上,只需将所有出现的分隔符 1 替换为分隔符 2,然后在分隔符 2 上拆分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-06
    • 1970-01-01
    • 1970-01-01
    • 2020-04-24
    • 2022-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多