Php 为什么这一开始还空着呢?

Php 为什么这一开始还空着呢?,php,Php,因为前面的斜杠。这不会 array ( 0 => '', 1 => '1', 2 => '2', 3 => '3', 4 => '4', 5 => ' ', ) 由于后面的斜杠,您还有一个空数组元素。因为字符串以/开头,explode()使用您指定的分隔符(/)将字符串拆分为数组。每次explode遇到您的定界符时,它都会使用自上一个定界符以来它前面的任何字符,并将其添加到数组中(explode()从左到右操作) 即使分隔符前面没有任

因为前面的斜杠。这不会

array (
  0 => '',
  1 => '1',
  2 => '2',
  3 => '3',
  4 => '4',
  5 => ' ',
)

由于后面的斜杠,您还有一个空数组元素。

因为字符串以
/
开头,
explode()
使用您指定的分隔符(
/
)将字符串拆分为数组。每次explode遇到您的定界符时,它都会使用自上一个定界符以来它前面的任何字符,并将其添加到数组中(
explode()
从左到右操作)

即使分隔符前面没有任何内容(例如,字符串以分隔符开头或两个分隔符背对背),也会发生这种情况

你可能想要这样的东西:

$here = "1/2/3/4/ ";

$test = explode('/', $here);
var_export($test);
这将修剪前导或尾随斜杠,避免空数组项。您可能还希望将其与
数组_filter()
结合使用,以删除空项,如下所示:

$test = explode('/', trim($here, '/'));

为此,如果您给它“/1/2/3//4/5/”,您仍然只能得到[1,2,3,4,5]。

,因为分隔符位于字符串的开头

同样,如果在字符串末尾找到分隔符,则空字符串将是数组的最后一个元素

您可以通过从字符串的开头和结尾删除分隔符字符串来解决此问题,例如,使用trim:

$test = array_filter(explode('/', $here));

让它爆炸(trim($here,“/”))难道不是更有意义吗?@TimCompton这就是我的意思
$test = array_filter(explode('/', $here));
$test = explode('/', trim($here, '/'));