6

我有这个变量 $number——它可能包含不同类型的数字格式。

类型 1: 类型$number=200,000.00 ;2:类型$number=(200,000.00) ;3:$number=(20.50) ;

如果数字有括号,我想删除括号并在其左侧添加一个减号。

示例:如果数字是$number=(200,000.00) ;我想将其转换为,-200,000.00或者如果$number=(20.50) ;我想将其转换为-20.50$number=200,000.00 ;我想保持原样。

我已经尝试过了,preg_replace('/[()^\d-]+/', '', $number); 但它不起作用。

你能告诉我如何完成这项工作吗?

谢谢 :)

4

3 回答 3

7

您可以执行以下操作

str_replace(array("(",")"),array("-",""),$number);
于 2012-08-29T12:37:41.650 回答
3

我认为这应该做你想要的:

if (strpos($number, "(") !== false && strpos($number, ")") !== false)
    $number = '-'. trim($number, "()");

示例:http ://codepad.org/Yhb80H0v

于 2012-08-29T12:37:06.710 回答
2

$number必须是一个字符串,让 PHP “知道”括号。使用此代码:

$number = "(1,000.2)";
$number = preg_replace('/\(([0-9,.]+)\)/', '-\1', $number);
print $number;
于 2012-08-29T12:37:42.930 回答