将字符串分解为没有空元素的数组?

新手上路,请多包涵

PHP 的 explode 函数返回一个字符串数组,该字符串拆分为某些提供的子字符串。当有前导、尾随或连续的定界符时,它将返回空字符串,如下所示:

 var_dump(explode('/', '1/2//3/'));
array(5) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(0) ""
  [3]=>
  string(1) "3"
  [4]=>
  string(0) ""
}

是否有一些不同的函数或选项或任何可以返回空字符串 以外 的所有内容的东西?

 var_dump(different_explode('/', '1/2//3/'));
array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}

原文由 Glenn Moss 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 505
2 个回答

尝试 preg_split

$exploded = preg_split('@/@', '1/2//3/', -1, PREG_SPLIT_NO_EMPTY);

原文由 ceejayoz 发布,翻译遵循 CC BY-SA 4.0 许可协议

array_filter 将删除空白字段,这是一个没有过滤器的示例:

 print_r(explode('/', '1/2//3/'))

印刷:

 Array
(
    [0] => 1
    [1] => 2
    [2] =>
    [3] => 3
    [4] =>
)

使用过滤器:

 php> print_r(array_filter(explode('/', '1/2//3/')))

印刷:

 Array
(
    [0] => 1
    [1] => 2
    [3] => 3
)

您将过滤掉解析为“false”的所有值。

http://uk.php.net/manual/en/function.array-filter.php

原文由 Dave Gregory 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏