在codeigniter中生成11位数字的序列号

时间:2018-08-03 07:22:21

标签: php codeigniter model

这是我的用于生成序列号的模型函数

public function getmax($field_name,$table_name){

        $this->db->select_max($field_name);
        $res1 = $this->db->get($table_name);
        if ($res1->num_rows() > 0) {
            $res2 = $res1->result_array();                  
        }
        $max = $res2[0][$field_name];
        if($max == NULL) return 1; else return $max+1;
    }   

这是我的控制器功能

$CardNo = $this->general_model->getmax('card_number','digicardusers');

我要设置从00000000001开始的序列号。如何更改代码以获取11位数字的序列号。任何人都可以帮助

2 个答案:

答案 0 :(得分:0)

假设您只是在寻找0'填充,请使用sprintf()

<?php
for ($i = 1; $i < 25; $i++) {
    echo sprintf("%'.011d", $i).PHP_EOL;
}

https://3v4l.org/UanaJ

00000000001
00000000002
00000000003
00000000004
00000000005
00000000006
00000000007
00000000008
00000000009
00000000010
00000000011
...

答案 1 :(得分:0)

您可以使用此功能,只需传递参数$ digit

function randomXDigit($digits = 11) {
    return str_pad(rand(0, pow(10, $digits)-1), $digits, '0', STR_PAD_LEFT);
}