PHP实现生成唯一编号(36进制的不重复编号)
当我们要将一个庞大的数据进行编号时,而编号有位数限制,比如5位的车牌号、10位的某证件号码、订单流水号、短网址等等,我们可以使用36进制计算出符合位数的不重复的编号。这样的话我要得到一个5位的编号,最大信息量就是36的5次方了,36^5 = 60466176,即最大的5位编号相当于10进制的数字:60466176。我们使用PHP进行进制转换,10进制转36进制。我们定义Code类,先定义密码字典,即0-Z分别对应的数值,方法encodeID中参数$int表示数字,$format表示位数长度,比方encodeID表示将数字123456789转换成5位的36进制编号,而方法decodeID用于将36进制的编号转换成10进制的编号。实际应用中,可以通过数据库得到10进制的编号,保证编号唯一,再将上述代码组合,最终生成一个10位的不重复的会员卡号。
下载地址
用户评论