将一个字符串转换为两个double



如果我有这样的字符串:'(1.23123,4.123123('

我该如何将其转换为两个双打?

$items = explode(',', $string);
$n1 = $items[0] // (1.23123

我的尝试:

floatval($n1) // 0
(double) $n1 // 0

如何转换?

您需要trim字符串周围的括号。在explode中使用trim,将括号作为charlist。

$items = explode(',', trim($str,')('));

代码

<?php
$str='(1.23123, 4.123123)';
$items = explode(',', trim($str,')('));
$items=array_map('floatval',$items);
echo $n1 = $items[0]; // "prints" 1.23123
echo $n2 = $items[1]; // "prints" 4.123123

array_map('floatval', $array)用于阵列

试试这个代码

   $string = "(1.23123, 4.123123)";
   preg_match_all("/[d.]+/", $string, $matches);
   print_r($matches[0]);

最新更新