PHP爆炸功能空白数组元素

Jam*_*mes 7 php function explode

我有一些关于php explode函数的问题.

我要爆炸的字符串是:

,.stl,.ppl
Run Code Online (Sandbox Code Playgroud)

目前,我正在使用爆炸功能:

explode(',',',.stl,.ppl');
Run Code Online (Sandbox Code Playgroud)

不幸的是,这是有问题的,它返回三个字符串:

array(3) { [0]=> string(0) "" [1]=> string(4) ".stl" [2]=> string(4) ".ppl" }
Run Code Online (Sandbox Code Playgroud)

为什么第一个字符串是空白的?

显而易见的解决方案是跳过数组的第一个元素,但是,为什么我需要这样做呢?

explode()功能是否应该自动删除此空白数组,或者根本不生成它?

Nic*_*los 16

这是正常行为.您需要了解空字符串是有效的字符串值,因此PHP返回它.

对于可能不存在元素的情况,保留结构非常有用.

如果你不想要它,你可以简单地过滤它:

  $array = array_filter( explode(",", $string ));
Run Code Online (Sandbox Code Playgroud)

但请注意,这将过滤掉任何评估为false的内容(例如0).


小智 5

您还可以修剪字符串中的前导','explode(',',trim(',.str,.ppl'),',')

  • 这是正确的解决方案。但天哪,这看起来像很多逗号。 (2认同)