如何将负值更改为有意义的值。
要明确---
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
任何人都知道解决方案的方式。
答案 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
<强> /-\d+/
强>
/
是开始和结束分隔符。
-
这需要匹配-ve
个号码。如果输入为: this is 15
,那么这将不会从字符串中获得任何内容。
\d+
匹配一个或多个digits
。
希望这会有所帮助。
答案 1 :(得分:1)
答案 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
<强>样本:强>