我使用preg_split作为以下内容:
<?php
$num = 99.14;
$pat = "[^a-zA-Z0-9]";
$segments = preg_split($pat, $num);
print_r($segments);
我预计$ segment将是一个类似array(99,14)
的数组但是,它返回array(99.14)
我不知道为什么preg_split会这样做,而它应该分割字符串的模式是任何特殊字符,即非字母数字。
答案 0 :(得分:4)
你必须像这样在你的正则表达式中添加分隔符:
<?php
$num = 99.14;
$pat = "/[^a-zA-Z0-9]/";
//^------------^Delmimiter here
$segments = preg_split($pat, $num);
print_r($segments);
?>
输出:
Array ( [0] => 99 [1] => 14 )
修改强>
为什么OP将整个字符串放回数组中的问题很简单!如果您在此处阅读手册:http://php.net/manual/en/function.preg-split.php
在笔记下快速引用:
提示 如果匹配失败,将返回包含输入字符串的单个元素的数组。
答案 1 :(得分:0)
如果您只想沿小数分割,您还可以使用:
$array = explode('.', $num);
答案 2 :(得分:0)