首页 > PHP教程 > php开发知识文章

php 创建信息唯一编号的方法

本文介绍了php 创建信息唯一编号的方法,欢迎大家的学习。

在web开发过程中,数据表一般都使用自增数字作为id主键,我们经常还需要根据一定的规则创建不重复编号,订单号这些信息。

订单号=20160102197681236,这里包含了订单的生成时间及id。

编号创建的规则

1.唯一

使用自增id生成,保证唯一性

2.尽可能短

可使用数字求余对应字母的方式处理,创建较短的编号

格式使用前缀+字母+数字组成,或只使用数组,数字只保留N位,超过的使用数字求余的方式使用字母对应

代码如下:

/**
* 创建编号
* @param Int $id 自增id
* @param Int $num_length 数字最大位数
* @param String $prefix 前缀
* @return String
*/
function create($id, $num_length, $prefix)
{
// 基数
$base = pow(10, $num_length);
// 生成字母部分
$division = (int)($id / $base);
$word = '';
while ($division) {
$tmp = fmod($division, 26); // 只使用26个大写字母
$tmp = chr($tmp + 65); // 转为字母
$word .= $tmp;
$division = floor($division / 26);
}
if ($word == '') {
$word = chr(65);
}
// 生成数字部分
$mod = $id % $base;
$digital = str_pad($mod, $num_length, 0, STR_PAD_LEFT);
$code = sprintf('%s-%s-%s', $prefix, $word, $digital);
return $code;
}

以上就是本文php 创建信息唯一编号的方法的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助。

php 创建信息唯一编号的方法

关闭
感谢您的支持,我会继续努力!
扫码打赏,建议金额1-10元


提醒:打赏金额将直接进入对方账号,无法退款,请您谨慎操作。