18位不重复订单号
/** * 生成10位绝不重复订单号 */ function order_number(){ static $ORDERSN=array(); //静态变量 $ors=date('ymd').substr(time(),-5).substr(microtime(),2,5); //生成16位数字基本号 if (isset($ORDERSN[$ors])) { //判断是否有基本订单号 $ORDERSN[$ors]++; //如果存在,将值自增1 }else{ $ORDERSN[$ors]=1; } return $ors.str_pad($ORDERSN[$ors],2,'0',STR_PAD_LEFT); //链接字符串 }
暂时只测试了本地,如果需要多并发,可以考虑将静态变量变为静态缓存判断
加上用户id是肯定不会有重复的
function create_sn(){ mt_srand((double )microtime() * 1000000 ); return date("YmdHis" ).str_pad( mt_rand( 1, 99999 ), 5, "0", STR_PAD_LEFT ); }