PHP强制使用一组特定的数字

时间:2010-12-12 15:03:21

标签: php

我正在写一个脚本,需要将布局格式化为3 numbers ( 000 ) ....当我返回我的SQL时,我得到的结果可能是'1',可能是'100',可以是'50'它可以是0到999之间的任何地方....我怎么能总是让它作为3数字布局返回。

例如,如果结果返回1则需要读取001,如果返回50,则需要读取050,依此类推。

4 个答案:

答案 0 :(得分:8)

sprintf()功能:

$formatted_decimal = sprintf('%03d', $unformatted_decimal);
# 1 -> 001, 10 -> 010, etc...

正如一般性提示:除非您有非常具体的理由,否则请勿存储格式化版本。输出格式很便宜。如果您稍后更改格式要求,那么存储“原始”数据几乎总是更好的选择。

答案 1 :(得分:1)

如果您使用的是mysql,则可以使用lpad功能,例如

select lpad(1, 3, 0);
select lpad(id, 3, 0) as padded_id from ...;

答案 2 :(得分:0)

您可以使用str_pad功能

示例

str_pad($number, 3, "0", STR_PAD_LEFT);

答案 3 :(得分:0)

另一种解决方案(必然是最好的解决方案)是在数据库中使用smallint(3)unsigned zerofill。如果您的数据真的“代表”了这种格式,那么它可能是一个正确的解决方案。但是,如果您只是希望您的“演示文稿”采用这种格式,则可能不是。

represent: what the data means.
presentation: how it should look to the user.