PHP:按空格爆炸字符串包括数组中的空格

时间:2016-09-12 09:19:49

标签: php arrays

我有几个空格的字符串,包括字符串开头和结尾的双空格和空格:

 12 345  67 89

我想将数字添加到如此使用的数组中:

explode(" ", $s);

但这也为数组添加了空格。

有没有办法只将数字添加到数组中?

5 个答案:

答案 0 :(得分:4)

使用preg_split()代替explode()

preg_split('/\s+/', $str);

这将使用一个或多个空格作为分隔符来分割字符串。

答案 1 :(得分:0)

如果您想一次考虑所有空格,为什么不这样使用preg_split()

<?php
    $str  = "12 345  67  89";
    $res  = preg_split("#\s+#", $str);

答案 2 :(得分:0)

我已应用此代码,请看一下

<?php

$data = "12 345  67 89";

$data = preg_replace('/\s+/', ' ',$data);
var_dump(explode(' ',$data));
die;

?>

我想大多数代码对你来说都是可以理解的,所以我只是向你解释一下: preg_replace('/\s+/', ' ',$data)

在此代码中,preg_replace将''的一个或多个出现替换为只有一个'。

答案 3 :(得分:0)

试试这个:

$numbers = " 12 345  67 89";

$numbers = explode(" ", trim($numbers));

$i = 0;

foreach ($numbers as $number) {
    if ($number == "") {
        unset($numbers[$i]);
    }

    $i++;
}
var_dump(array_values($numbers));

输出:

array(4) {
  [0]=>
  string(2) "12"
  [1]=>
  string(3) "345"
  [2]=>
  string(2) "67"
  [3]=>
  string(2) "89"
}

答案 4 :(得分:0)

使用trim

尝试此preg_split
$str = " 12 345  67 89";

$data = preg_split('/\s+/', trim($str), $str);

trim()用于删除第一个元素之前和最后一个元素之后的空格。 (preg_split()不做 - 它只删除逗号周围的空格)