如何将其转换为float然后递增它然后转换回字符串。
if($set==$Data_Id)
{
$rel='1.1.1.2';
}
增量后应该像1.1.1.3。
请任何帮助。
答案 0 :(得分:2)
太疯狂了,它可能会起作用
$rel='1.1.1.2';
echo substr($rel, 0, -1). (substr($rel,-1)+1); //1.1.1.3
最大的问题是,如果字符串以 9 结束
,您希望发生什么?答案 1 :(得分:1)
这是一种略有不同的方法。
<?php
function increment_revision($version) {
return preg_replace_callback('~[0-9]+$~', function($match) {
return ++$match[0];
}, $version);
}
echo increment_revision('1.2.3.4'); //1.2.3.5
安东尼。
答案 2 :(得分:0)
&#34; 1.1.1.2&#34;不是有效的数字。所以你必须做这样的事情:
$rel = '1.1.1.2';
$relPlusOne = increment($rel);
function increment($number) {
$parts = explode('.', $number);
$parts[count($parts) - 1]++;
return implode('.', $parts);
}
答案 3 :(得分:0)
如果您需要解决此问题,则可以使用intval(),strval(),str_replace(),substr()和strlen()进行解决。< / p>
$rel = '1.1.1.2'; // '1.1.1.2'
// replace dots with empty strings
$rel = str_replace('.', '', $rel); // '1112'
// get the integer value
$num = intval($rel); // 1112
// add 1
$num += 1; // 1113
// convert it back to a string
$str = strval($num); // '1113'
// initialize the return value
$ret = '';
// for each letter in $str
for ($i=0; $i<strlen($str); $i++) {
echo "Current ret: $ret<br>";
$ret .= $str[$i] . '.'; // append the current letter, then append a dot
}
$ret = substr($ret, 0, -1); // remove the last dot
echo "Incremented value: " . $ret;
然而,此方法将1.1.1.9更改为1.1.2.0。如果那就是你想要的,那就没关系了。