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

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。