Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将字符串转换为两个双精度字符串_Php - Fatal编程技术网

Php 将字符串转换为两个双精度字符串

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,')(')); 代码 数组映射('

如果我有这样一个字符串:'(1.23123,4.123123)'

我怎样才能把它转换成两个双打呢

$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]);