PHP中的负数字数句柄

时间:2015-10-11 16:33:36

标签: php algorithm

如何将负值更改为有意义的值。

要明确---

 Input Value- This is -15
 Meaningful value - This is 14

如何在PHP中实现。

因此,当请求值为-numeric时,请求值为-1。

喜欢 -

 Iphone -5 Should be Iphone 4
 Ipad -2 Should be iPad 1

首先,它需要检查是否有任何负数,如果字符串旁边有任何负数而不是只减少一个数字。

So if the input is - Iphone -4
it detect there is a - number in the input
than it only take the -4 value from Iphone

任何人都知道解决方案的方式。

3 个答案:

答案 0 :(得分:1)

您可以按照

中提到的进行操作

您需要使用preg_match

获取该值
$str = input value;
preg_match('/-\d+/', $str, $match);
if(count($match) > 0 ):
    (input value * (-1)) -1
endif

这将为您提供所需的价值。

input value = This is -15
preg_match('/-\d+/', $str, $match);
// here $match[0] contains -15, so
(-15 * (-1)) -1 = 14

DEMO HERE

<强> /-\d+/

/是开始和结束分隔符。

-这需要匹配-ve个号码。如果输入为: this is 15 ,那么这将不会从字符串中获得任何内容。

\d+匹配一个或多个digits

希望这会有所帮助。

答案 1 :(得分:1)

获取该负数并向其添加1并执行abs。与-5+1 -4相同,然后说abs(-4)),它会给你一个绝对值4

答案 2 :(得分:0)

使用绝对函数abs

$negNumber = -5;
if( $negNumber < 0 ){
echo abs( $negNumber )  - 1 ;
}
//4

如果您需要替换句子中的值,可以使用preg_replace_callback

$string = "Iphone -5";
$result = preg_replace_callback('/-\d+/', 'callback', $string);
function callback ($matches) {
return abs($matches[0]) - 1;
}
echo $result;
//Iphone 4

<强>样本:

http://ideone.com/C8apl9