新知一下
海量新知
6 0 8 4 1 5 1

[笔记] PHP 如何给数字前面补零 ,固定位数补0

php自学中心 | 用编程思想感受你的生活 2021/12/02 14:29

在设计唯一编号的时候,需要固定位数的数字,比如需要固定四位数格式:

比如:

新知达人, [笔记] PHP 如何给数字前面补零 ,固定位数补0

YSZC后面的0001,以下一组数字,如何让它自增呢?

1->0001

56->0056

288->0288

1992->1992

我们 可以使用php内置函数str_pad() 函数把字符串填充为新的长度

str_pad(string,length,pad_string,pad_type)

//参数    描述

string      //必需。规定要填充的字符串。

length      //必需。规定新的字符串长度。如果该值小于字符串的原始长度,则不进行任何操作。

pad_string  //可选。规定供填充使用的字符串。默认是空白。

pad_type    //可选。规定填充字符串的哪边。

            //可能的值:

            STR_PAD_BOTH - //填充字符串的两侧。如果不是偶数,则右侧获得额外的填充。

            STR_PAD_LEFT - //填充字符串的左侧。

            STR_PAD_RIGHT - //填充字符串的右侧。默认。

例子,我写了一个方法,先判断数据表里面有没有数据,没有就初始化0001,否则调用自增ID。

/**

     * @desc 协议编号

     * @author  磊丰

     * @Date  2021/12/1 16:23

     * @param $num

     * @return string

     */

    public function inc_privacy_no($num)

    
{

        $start = "0001";

        $data = 表::find('id');    //这里是查询表里的一条最新的sql数据,自己写

        if(empty($data)){

            return $num.$start;

        }

        $data_no = str_pad(($data['id']+1),4,"0",STR_PAD_LEFT);

        return $num.$data_no;

    }

调用方法

$this->inc_privacy_no("YSZC")

更多“算法”相关内容

更多“算法”相关内容

新知精选

更多新知精选