在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
您可以使用正则表达式split:
$var = preg_split('/'s+/', trim($var));
这将在任意数量的连续空格字符上进行拆分。trim
用于防止在输入字符串的开头和/或末尾出现空匹配。
尝试
$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)
感谢
另一种选择,用一个空格替换多个空格:
$var = preg_replace("/ {2,}/", " ", $var); //spaces only
$var = preg_replace("/'s{2,}/", " ", $var); //all whitespaces e.g. line breaks, space etc.
$var = explode(' ',preg_replace('/( +)/', ' ',$var));
$var = array_values(array_filter($var));