PHP分解函数空白数组元素

PHP分解函数空白数组元素,php,function,explode,Php,Function,Explode,我对php explode函数有一些问题 我要分解的字符串是: ,.stl,.ppl 目前,我正在使用explode函数: explode(',',',.stl,.ppl'); 不幸的是,这是有问题的,它返回三个字符串: array(3) { [0]=> string(0) "" [1]=> string(4) ".stl" [2]=> string(4) ".ppl" } 为什么第一个字符串是空的 显而易见的解决方案是跳过数组的第一个元素,但是,为什么我需要这样做呢 e

我对php explode函数有一些问题

我要分解的字符串是:

,.stl,.ppl
目前,我正在使用explode函数:

explode(',',',.stl,.ppl');
不幸的是,这是有问题的,它返回三个字符串:

array(3) { [0]=> string(0) "" [1]=> string(4) ".stl" [2]=> string(4) ".ppl" }
为什么第一个字符串是空的

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


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

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

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

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

  $array = array_filter( explode(",", $string ));

但请注意,这也会过滤掉任何计算结果为false的内容(例如0)。

您还可以在字符串
中的前导“,”分解(“,”,修剪(“,.str,.ppl'),”)

字符串中有一个前导
,因此从技术上讲,您有三项,第一项为空,所以
explodoe
只要做你期望错误的事情。您可能希望在字符串上使用
trim
来修剪前导/尾随
来解决此问题这是正确的解决方案。但是我的天,这看起来像是很多逗号。是的,为了让其他阅读本文的人受益,需要知道的是trim()可以删除字符串开头和结尾指定的任何字符,而不仅仅是空格。因此,
trim($foo,“/”)
在需要分离URL或文件/目录路径的片段时非常有用。