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

无论我做什么,我总是在 return 中得到 ABC124。

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

上面一行做了以下事情:

  1. 将数字字符串 0123 加上小数 1 得到 124 感谢 type juggling
  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));