首页 > 解决方案 > explode() 给了我我没想到的空白值

问题描述

我想要做的是根据它有多少 \n 来分隔一个字符串。例如,如果我使用这个:

$string = "Hello\n stackoverflow";
$explode_insert = explode("\n", $string);

我的预期结果是

  1. 你好
  2. “”
  3. 堆栈溢出

如果$string是:

$string = "Hello \nstackoverflow\n\n how are you!"

我的预期结果是:

  1. 你好
  2. “”
  3. 堆栈溢出
  4. “”
  5. “”
  6. 你好吗!

但相反,如果爆炸得到“\n\n”,它会输出:

  1. “”
  2. “”
  3. “”

有一个我不需要的额外“”,有什么想法为什么会发生这种情况?

标签: phpexplode

解决方案


PHPexplode在提供的分隔符的边界上运行,因此这些是预期的结果。

这是一个例子:

\n\n

这会产生 3 个空字符串,因为有 3 个区域不是“\n”,之前、之间和之后;看这里:

\n\n
^ ^ ^

推荐阅读