我是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);
上面这行做了如下的事情:
- 取数字字符串
0123
并将小数1
添加到其中,由于类型杂耍,您将获得124
- 然后加上"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));