您的位置 首页 php技术

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

第一种方式使用sprintf()函数 demo如下: /*生成卡号 @parameter int $goods…

第一种方式使用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,至于还有没有其它函数我就不清楚了~

本文来自网络,不代表MuKe网站资源立场,转载请注明出处:https://www.somke.cn/archives/102

作者: delon

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

联系我们

联系我们

在线咨询: QQ交谈

邮箱: lon_mail@qq.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部