PHP在字符串中截取出后三位数字并将该数字加一

PHP在字符串中截取出后三位数字并将该数字加一,然后合并起来。如:前:$str="abcdefg001";后:$str="abcdefg002";哪位有比较好的算法?... PHP在字符串中截取出后三位数字并将该数字加一,然后合并起来。
如:
前:$str = "abcdefg001";
后:$str = "abcdefg002";
哪位有比较好的算法?
展开
 我来答
辞友缘心
推荐于2017-09-01 · TA获得超过684个赞
知道小有建树答主
回答量:432
采纳率:0%
帮助的人:359万
展开全部
<?php
$str = "abcdefg001";
$num = intval(substr($str,strlen($str)-3,3))+1;
$num = sprintf("%03d",$num);
$str = substr($str,0,strlen($str)-3).$num ;
echo $str;
?>
追问
感谢!但是有一个问题,如果 这个str  有的是后两位为数字怎么办?如:  abcdefg02   这种的最后结果要  abcdefg03  怎么能自动判断两位和三位?
追答

如果数字位数不固定,但只要能确认是以数字结尾的就可以使用正则来将数字匹配出来:

<?php
$str = "abcdefg02";
preg_match_all("/\d+/",$str,$num);
$num = $num[0][count($num[0])-1];
$new_num = sprintf("%0".(strlen($num))."d",$num+1);
$str = str_replace($num,$new_num,$str);
echo $str;
?>

以上代码可以做到末尾任意位数字的你这个需求。

百度网友9834199
2014-11-10 · TA获得超过108个赞
知道小有建树答主
回答量:355
采纳率:50%
帮助的人:184万
展开全部
$str = "abcdefg001";
$n = substr( $str, -3 ) + 1;
echo substr( $str, 0, 7 ) . str_pad( $n, 3, '0', 0 );
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式