PHP生成唯一订单号的方法
PHP #唯一2014-04-13 00:19
我们可以通过下面的函数来生成,代码如下:
function build_order_no() { return date('Ymd').substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8); }
下面解释一下这个函数。
用uniqid获取一个基于当前的微秒数生成的唯一不重复的字符串,取其第8到13位。但是这个字符串里面有英文字母,咋办?
用ord获取他的ASCII码,所以就有了下一步:用str_split把这个字符串分割为数组,用array_map去操作(速度快点)。然后返回的还是一个数组,KO,在用implode弄成字符串,但是字符长度不定,取前固定的几位,然后前面加上当前的年份和日期,这个方法生成的订单号,全世界不会有多少重复的。
相关文章
- PHP中header函数的常用方法 2014/04/13
- PHP用header强制下载时IE文件名中文乱码问题解决方法 2014/04/09
- PHP 5.4不对中文json编码的方法 2014/04/09
- PHP将数字金额替换为人民币中文大写的函数 2014/04/09
- PHP生成唯一标识ID的函数 2014/04/09
- PHP不定参数的函数 2014/04/09
- PHP执行定时任务的简单实现 2014/04/09
- PHP强制下载文件的实现 2014/04/09
- PHPExcel读取excel小例子 2014/04/09
- PHP中set_time_limit()函数用法 2014/04/09