PHP 爆炸函数空白数组元素

问题描述 投票:0回答:2

我在使用 php 爆炸函数时遇到一些问题。

我要爆炸的字符串是:

,.stl,.ppl

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

explode(',',',.stl,.ppl');

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

array(3) { [0]=> string(0) "" [1]=> string(4) ".stl" [2]=> string(4) ".ppl" }

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

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

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

php function explode
2个回答
25
投票

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

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

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

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

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


6
投票

您还可以修剪字符串中的前导“,”

explode(',', trim(',.str,.ppl', ','))

© www.soinside.com 2019 - 2024. All rights reserved.