You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP中explode("/", "///")返回4个元素而非3个的原因咨询

为啥explode("/", "///")会返回4个元素?

哈哈,这个问题其实是PHP里explode()函数的默认逻辑导致的,我给你掰扯清楚:

你看,当用"/"去分割"///"这个字符串的时候,咱们可以把整个字符串拆成这几个部分:

  • 第一个/前面:啥都没有,是空字符串
  • 第一个和第二个/中间:还是啥都没有,空字符串
  • 第二个和第三个/中间:依旧是空字符串
  • 第三个/后面:还是空字符串

这不就凑够4个空元素了嘛!explode()的规则就是会保留分隔符之间、开头和结尾的所有内容——哪怕是空的,也会当成一个元素存进数组里。

给你举两个对比例子更清楚:

  • 比如explode("/", "a/b/c"),得到的是["a", "b", "c"],3个元素,因为分隔符都夹在有效内容中间
  • 要是explode("/", "/a/b/c/"),就会得到["", "a", "b", "c", ""],5个元素,开头和结尾的空字符串都被保留了

如果想去掉这些空元素,其实很简单,用array_filter()过滤一下就行:

$pieces = explode("/", "///");
$pieces = array_filter($pieces); // 自动过滤掉空字符串元素
print_r($pieces); // 输出空数组

或者也可以先把字符串首尾的/去掉再分割:

$pieces = explode("/", trim("///", "/"));
print_r($pieces); // 同样输出空数组,因为trim后字符串变成空的了

内容的提问来源于stack exchange,提问作者Harry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:13:49