PHP在数字逻辑中设置最小4位数字


PHP set minimum 4 digits in a number logic

我是PHP新手,我正在尝试在变量中设置最小4位数字,并创建一个memberid。

$memberidVal = ABC0123;
$numMemberVal = preg_replace("/[^0-9]/", "", $memberidVal);
if (strlen($numMemberVal) == 3) {
    $numMemberVal = 0 . $numMemberVal;
} elseif (strlen($numMemberVal) == 2) {
    $numMemberVal = 00 . $numMemberVal;
} elseif (strlen($numMemberVal) == 1) {
    $numMemberVal = 000 . $numMemberVal;
}
$newMemberId = "ABC" . ($numMemberVal + 1);
echo ($newMemberId);

无论我做什么,我总是得到ABC124的回报

$newMemberId = "ABC" . ($numMemberVal + 1);

上面这行做了如下的事情:

  1. 取数字字符串0123并将小数1添加到其中,由于类型杂耍,您将获得124
  2. 然后加上"ABC"因为你告诉它

如果您想强制执行前导零,请使用str_pad():

$memberidVal = ABC0123;
$numMemberVal = preg_replace("/[^0-9]/", "", $memberidVal);
$newMemberId = "ABC" . str_pad(($numMemberVal + 1), 4, '0', STR_PAD_LEFT);

或者在零前加上1:

$memberidVal = ABC0123;
$numMemberVal = preg_replace("/[^0-9]/", "", $memberidVal);
$numMemberVal++;
if (strlen($numMemberVal) == 3) {
    $numMemberVal = 0 . $numMemberVal;
} elseif (strlen($numMemberVal) == 2) {
    $numMemberVal = 00 . $numMemberVal;
} elseif (strlen($numMemberVal) == 1) {
    $numMemberVal = 000 . $numMemberVal;
}
$newMemberId = "ABC" . $numMemberVal;
echo ($newMemberId);

或者使用sprintf():

$memberidVal = ABC0123;
$numMemberVal = preg_replace("/[^0-9]/", "", $memberidVal);
$newMemberId = sprintf('%s%04d', 'ABC', ($numMemberVal + 1));