【问题标题】:PHP explode function blank array elementPHP爆炸函数空白数组元素
【发布时间】:2013-05-15 10:33:06
【问题描述】:

我在使用 php explode 函数时遇到了一些问题。

我要爆炸的字符串是:

,.stl,.ppl

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

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

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

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

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

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

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

【问题讨论】:

  • 你在字符串中有一个前导 ,,所以从技术上讲,你有三个项目,第一个是空白的,所以 expldoe 只是做你期望错误的事情。您可能希望在字符串上使用 trim 来修剪前导/尾随 , 以解决此问题

标签: php function explode


【解决方案1】:

你也可以trim在你的字符串explode(',',trim(',.str,.ppl'),',')中以','开头

【讨论】:

  • 这是正确的解决方案。但我的上帝,这看起来像很多逗号。
  • 是的,为了其他人阅读本文的好处,要知道的是,trim() 可以删除您从字符串的开头和结尾指定的任何字符,而不仅仅是空格。因此trim($foo,'/') 在您需要拆分 URL 或文件/目录路径的片段时很有用。
【解决方案2】:

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-16
    • 1970-01-01
    • 2019-07-26
    相关资源
    最近更新 更多