我正在写一个脚本,需要将布局格式化为3 numbers ( 000 )
....当我返回我的SQL时,我得到的结果可能是'1',可能是'100',可以是'50'它可以是0到999之间的任何地方....我怎么能总是让它作为3数字布局返回。
例如,如果结果返回1则需要读取001,如果返回50,则需要读取050,依此类推。
答案 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)
答案 3 :(得分:0)
另一种解决方案(必然是最好的解决方案)是在数据库中使用smallint(3)unsigned zerofill。如果您的数据真的“代表”了这种格式,那么它可能是一个正确的解决方案。但是,如果您只是希望您的“演示文稿”采用这种格式,则可能不是。
represent: what the data means.
presentation: how it should look to the user.