我有一个变量,其值为1234567。

我希望它包含8位数字,即01234567。

有PHP函数吗?


当前回答

假设值为$value:

呼应它: 08年printf (" % d”,美元值); 要得到它: $formatted_value = sprintf("%08d", $value);

这样应该可以了

其他回答

虽然我不太确定您想要做什么,但您可能正在寻找sprintf。

这就是:

$value = sprintf( '%08d', 1234567 );

您需要的是Sprintf。

编辑(在某种程度上被downvotes要求),从上面链接的页面,这里有一个“零填充整数”示例:

<?php
    $isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);
?>
$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

假设值为$value:

呼应它: 08年printf (" % d”,美元值); 要得到它: $formatted_value = sprintf("%08d", $value);

这样应该可以了

简单的答案

$p = 1234567;
$p = sprintf("%08d",$p);

我不确定如何解释“它永远不会超过8位数”的评论,以及它是指输入还是输出。如果它引用输出,则必须有一个额外的substr()调用来剪辑字符串。

剪掉前8位数字

$p = substr(sprintf('%08d', $p),0,8);

剪掉最后8位数字

$p = substr(sprintf('%08d', $p),-8,8);