在PHP中我有这个字符串变量:
$var = " 00480722 ZF452D041502 13 9900 153370178";
当我explode
时,我会得到类似的结果:
$var = explode(" ",$var);
echo count($var);
// prints -> 36
因此爆炸产生了36个元素的数组,其中大部分是""
。如何缩小数据之间的所有多个空格,以便我可以explode
并获得:
$var[0] -> 00480722
$var[1] -> ZF452D041502
...
$var[4] -> 153370178
答案 0 :(得分:2)
您可以使用regular expression split:
$var = preg_split('/\s+/', trim($var));
这将分割为任意数量的连续空格字符。 trim
用于防止输入字符串开头和/或结尾的空匹配。
答案 1 :(得分:1)
尝试
$var = " 00480722 ZF452D041502 13 9900 153370178";
$var = explode(" ",$var);
$var = array_filter($var);
echo count($var);
输出
5
Var Dump
var_dump($var);
array
1 => string '00480722' (length=8)
17 => string 'ZF452D041502' (length=12)
21 => string '13' (length=2)
27 => string '9900' (length=4)
35 => string '153370178' (length=9)
由于
答案 2 :(得分:0)
$var = array_values(array_filter($var));
答案 3 :(得分:0)
另一种选择,用一个替换多个空格:
$var = preg_replace("/ {2,}/", " ", $var); //spaces only
$var = preg_replace("/\s{2,}/", " ", $var); //all whitespaces e.g. line breaks, space etc.
答案 4 :(得分:0)
$var = explode(' ',preg_replace('/( +)/', ' ',$var));