我有一个变量,其值为1234567。
我希望它包含8位数字,即01234567。
有PHP函数吗?
我有一个变量,其值为1234567。
我希望它包含8位数字,即01234567。
有PHP函数吗?
当前回答
$no_of_digit = 10;
$number = 123;
$length = strlen((string)$number);
for($i = $length;$i<$no_of_digit;$i++)
{
$number = '0'.$number;
}
echo $number; /////// result 0000000123
其他回答
虽然我不太确定您想要做什么,但您可能正在寻找sprintf。
这就是:
$value = sprintf( '%08d', 1234567 );
当我需要01而不是1时,下面的方法对我有用:
$number = 1;
$number = str_pad($number, 2, '0', STR_PAD_LEFT);
使用sprintf:
sprintf('%08d', 1234567);
或者你也可以使用str_pad:
str_pad($value, 8, '0', STR_PAD_LEFT);
简单的答案
$p = 1234567;
$p = sprintf("%08d",$p);
我不确定如何解释“它永远不会超过8位数”的评论,以及它是指输入还是输出。如果它引用输出,则必须有一个额外的substr()调用来剪辑字符串。
剪掉前8位数字
$p = substr(sprintf('%08d', $p),0,8);
剪掉最后8位数字
$p = substr(sprintf('%08d', $p),-8,8);
你总是可以滥用类型杂耍:
function zpad(int $value, int $pad): string {
return substr(1, $value + 10 ** $pad);
}
如果10 ** pad > INT_MAX或>= 10 * pad,这将无法正常工作。