生成指定位数的数字(php数字补零的两种方法)

第一种方式使用sprintf()函数 demo如下:

/*生成卡号
@parameter int $goods_id,$id 根据goods_id(4位,不够4位补0)和id(6位,不够6位前边补0)生成 goods_id和id中间用-连接
@return string 返回生成后的字符串
 * */
function generate_goods_numbers($goods_id,$id)
{
    if(strlen($goods_id) == 4)
    {
        //等于4 则刚符合4位规则
        $goods_id = $goods_id;
    }
    elseif(strlen($goods_id) > 4)
    {
        //大于4 截取前4位
        $goods_id = substr($goods_id,0,4);
    }
    else
    {
        //既不等于4又不大于4 则在传进来的$goods_id前面补0 补齐4位
        $goods_id = sprintf("%04d",$goods_id); //生成4位数,不足前面补0
    }

    if(strlen($id) == 6)
    {
        $id = $id;
    }
    elseif(strlen($id) > 6)
    {
        $id = substr($id,0,6);
    }
    else
    {
        $id = sprintf("%06d",$id); //生成6位数,不足前面补0
    }

    return $goods_id.'-'.$id;
}


//调用函数
$variable = generate_goods_numbers(12,29);

echo $variable;  //输出:0012-000029


第二种方式 使用str_pad()函数 demo如下:

str_pad()
顾名思义这个函数是针对字符串来说的这个可以对指定的字符串填补任何其它的字符串
例如:str_pad(带填补的字符串,填补后的长度,填补字符串,填补位置)
其中填补后的长度必须是个正整数,填补位置有三个选项,
左边:STR_PAD_LEFT,
右边:STR_PAD_RIGHT,
两端:STR_PAD_BOTH

演示:
echo str_pad(1,3,0,STR_PAD_LEFT);   //输出:001


如果不使用sprintf()和str_pad()函数,也可以自己在函数内自己计算要补齐多少个0,至于还有没有其它函数我就不清楚了~


可以参考以下链接:

http://www.cnblogs.com/52php/p/5657892.html


声明:禁止任何非法用途使用,凡因违规使用而引起的任何法律纠纷,本站概不负责。

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

精彩评论

全部回复12人评论7,777人参与