我有以下数据:
$aa ="msg_1";
我想在执行爆炸操作后在字符串末尾添加+1,如下所示:
$nwMsg =explode("_",$aa);
$inMsg =number_format($nwMsg[1])+1;
$finStr =$nwMsg[0].'_'.$inMsg;
之后我想再次形成字符串并再次重复相同的过程,但之后它增加到"10"
之后它还没有增加......
答案 0 :(得分:3)
您应该将+1
置于number_format
来电之内,而不是之后。
编辑:如果您只想将$nwMsg[1]
视为数字,只需向其添加1就可以正常工作,因为+
是一个数字运算符。
答案 1 :(得分:1)
$nwMsg =explode("_",$aa);
$inMsg =number_format($nwMsg[1] +1) ;
$finStr =$nwMsg[0].'_'.$inMsg;
答案 2 :(得分:1)
$aa= "msg_1";
$new_string= explode("_", $aa);
$new_aa= $new_string[0] ."10";
答案 3 :(得分:1)
function add_one($string) {
preg_match_all("/[a-zA-Z]+_\d+/", $string, $matches);
$elements = $matches[0];
$last = $elements[count($elements)-1];
$components = explode("_", $last);
$newnum = $components[1] + 1;
return $string . $components[0] . "_" . $newnum;
}
echo add_one("msg_1"); // prints "msg_1msg_2"
echo add_one("msg_1msg_2msg_3msg_4msg_5msg_6msg_7msg_8msg_9"); // prints "msg_1msg_2msg_3msg_4msg_5msg_6msg_7msg_8msg_9msg_10"
答案 4 :(得分:0)
这是错误的
$inMsg =number_format($nwMsg[1])+1;
这就是它的完成方式
$inMsg =number_format($nwMsg[1]+1);
答案 5 :(得分:0)
$nwMsg =explode("_",$aa);
$inMsg =$nwMsg[1] +1 ;
$finStr =$nwMsg[0].'_'.$inMsg;
您将使用number_format获得结果。
答案 6 :(得分:0)
还有一件事,可能导致错误,你需要注意 - 因为你想要添加两个数字,首先要确保将$nwMsg[1]
转换为数字(整数或浮点数,它取决于):< / p>
$nwMsg =explode("_",$aa);
$inMsg =number_format((int)$nwMsg[1]+1);
$finStr =$nwMsg[0].'_'.$inMsg;
答案 7 :(得分:0)
另一种解决方案如何:
function add($matches) {
return ++$matches[0];
}
$new = preg_replace_callback("(\d+)", "add", $aa);