PHP随机生成18位不重复的订单号代码实例

这篇文章主要介绍了PHP随机生成18位不重复的订单号代码实例,代码很简单但是很实用,有需要的同学可以参考下。

PHP代码:

  1. /**
  2. * 生成18位订单号
  3. * $length:随机数长度
  4. */
  5. function generateOrderNumber($length=4){
  6. //14位的日期(年月日时分秒)
  7. $date=trim(date('Ymdhis ',time()));
  8. //初始化变量为0
  9. $connt = 0;
  10. //建一个新数组
  11. $temp = array();
  12. while($connt < $length){
  13. //在一定范围内随机生成一个数放入数组中
  14. $temp[] = mt_rand(0, 9);
  15. //$data = array_unique($temp);
  16. //去除数组中的重复值用了“翻翻法”,就是用array_flip()把数组的key和value交换两次。这种做法比用 array_unique() 快得多。
  17. $data = array_flip(array_flip($temp));
  18. //将数组的数量存入变量count中
  19. $connt = count($data);
  20. }
  21. //为数组赋予新的键名
  22. shuffle($data);
  23. //数组转字符串
  24. $str=implode(",", $data);
  25. //替换掉逗号
  26. $number=str_replace(',', '', $str);
  27. return $date.$number;
  28. }

调用示例:

  1. <?php
  2. //商户订单号
  3. $number= generateOrderNumber();
  4. ?>