Php 将字符串转换为两个双精度字符串
如果我有这样一个字符串:'(1.23123,4.123123)' 我怎样才能把它转换成两个双打呢Php 将字符串转换为两个双精度字符串,php,Php,如果我有这样一个字符串:'(1.23123,4.123123)' 我怎样才能把它转换成两个双打呢 $items = explode(',', $string); $n1 = $items[0] // (1.23123 我的尝试: floatval($n1) // 0 (double) $n1 // 0 如何转换?您需要修剪字符串周围的括号。在分解中使用trim,方法是将括号作为字符列表传递 $items = explode(',', trim($str,')(')); 代码 数组映射('
$items = explode(',', $string);
$n1 = $items[0] // (1.23123
我的尝试:
floatval($n1) // 0
(double) $n1 // 0
如何转换?您需要
修剪字符串周围的括号。在分解中使用trim
,方法是将括号作为字符列表传递
$items = explode(',', trim($str,')('));
代码
数组映射('floatval',$array)
对于您的数组请尝试此代码
$string = "(1.23123, 4.123123)";
preg_match_all("/[\d\.]+/", $string, $matches);
print_r($matches[0]);
在将值转换为数字之前,您需要删除括号和空格。@Zeeshan,在您写上面的评论之前,已经设置了。另外,如果你想回答,请在下面做,不要在评论部分。不,它仍然会失败,因为有括号。等等,什么?答案不应该依赖于其他答案,至少不应该是含蓄的。如果你想说“xxx的答案加上yyy”,你需要这样说。但是,如果xxx的答案消失了怎么办?字符串第二部分的空格怎么办?哦,我明白了。我想trim
只会删除第二个参数中的内容。Thanks@SaifHamed,您可以将需要修剪的内容传递给整个字符列表:)只是为了清楚起见,修剪不会修剪内部空白。第一个原因是它不在要修剪字符()(“
)的列表中,第二个原因是修剪只在给定字符串的边界上工作。所以不,trim也不会处理这个问题。是floatval
在默默地忽略空白。感谢您的澄清@SaifHamed,请查看Yoshi对您的问题的评论。您的意思是preg_match
?我从来没有听说过prag\u match
。
$string = "(1.23123, 4.123123)";
preg_match_all("/[\d\.]+/", $string, $matches);
print_r($matches[0]);