如何通过PHP为数字添加+1?

时间:2013-02-06 12:54:41

标签: php explode

我有以下数据:

$aa ="msg_1";

我想在执行爆炸操作后在字符串末尾添加+1,如下所示:

$nwMsg =explode("_",$aa);
    $inMsg =number_format($nwMsg[1])+1;
    $finStr =$nwMsg[0].'_'.$inMsg;

之后我想再次形成字符串并再次重复相同的过程,但之后它增加到"10"之后它还没有增加......

8 个答案:

答案 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);