2012-04-05 65 views
0

在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 

回答

2

你可以使用一个regular expression split

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

这将拆分任意数量的顺序空间字符。 trim用于防止输入字符串开始和/或结尾的空匹配。

+0

感谢是这里给出最简单的答案! – 2012-04-05 15:12:23

0
$var = array_values(array_filter($var)); 
1

尝试

$var = " 00480722    ZF452D041502 13  9900  153370178"; 
$var = explode(" ",$var); 
$var = array_filter($var); 
echo count($var); 

输出

5 

瓦尔自卸

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) 

感谢

0

另一个ALTER本地,由单一的一个替代多个空格:

$var = preg_replace("/ {2,}/", " ", $var); //spaces only 
$var = preg_replace("/\s{2,}/", " ", $var); //all whitespaces e.g. line breaks, space etc. 
0
$var = explode(' ',preg_replace('/(+)/', ' ',$var));