php 创建信息唯一编号的方法
2017-05-16 23:03:33
•
阅读
打赏
本文介绍了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 创建信息唯一编号的方法的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助。
相关推荐
深度学习 -- 损失函数
深度残差网络(Deep Residual Networks (ResNets))
深度学习 -- 激活函数
神经网络训练 -- 调整学习速率
生成对抗网络(GAN)改进与发展
生成对抗网络(GAN)优点与缺点
生成对抗网络(GAN)的训练
生成对抗网络(GAN)基本原理
生成模型与判别模型