【求助】这段php方法,生成唯一的订单号会有重复的,该如何避免?

代码如下

function OrderId(){
    mt_srand((double) microtime() * 1000000);
    return date('ymd').str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);
}

生成出来的如19053099888,前面是日期,实际随机的数字只有5位,但是会有重复的情况出现,该如何避免呢?

最佳答案

date('YmdHis').mt_rand(1e4,1e5-1).uniqid();

in_array 比较耗性能,看看就好。