我有几个空格的字符串,包括字符串开头和结尾的双空格和空格:
12 345 67 89
我想将数字添加到如此使用的数组中:
explode(" ", $s);
但这也为数组添加了空格。
有没有办法只将数字添加到数组中?
答案 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()不做 - 它只删除逗号周围的空格)