PHP随机生成18位不重复的订单号代码实例
这篇文章主要介绍了PHP随机生成18位不重复的订单号代码实例,代码很简单但是很实用,有需要的同学可以参考下。
PHP代码:
- /**
- * 生成18位订单号
- * $length:随机数长度
- */
- function generateOrderNumber($length=4){
- //14位的日期(年月日时分秒)
- $date=trim(date('Ymdhis ',time()));
- //初始化变量为0
- $connt = 0;
- //建一个新数组
- $temp = array();
- while($connt < $length){
- //在一定范围内随机生成一个数放入数组中
- $temp[] = mt_rand(0, 9);
- //$data = array_unique($temp);
- //去除数组中的重复值用了“翻翻法”,就是用array_flip()把数组的key和value交换两次。这种做法比用 array_unique() 快得多。
- $data = array_flip(array_flip($temp));
- //将数组的数量存入变量count中
- $connt = count($data);
- }
- //为数组赋予新的键名
- shuffle($data);
- //数组转字符串
- $str=implode(",", $data);
- //替换掉逗号
- $number=str_replace(',', '', $str);
- return $date.$number;
- }
调用示例:
- <?php
- //商户订单号
- $number= generateOrderNumber();
- ?>