PHP生成唯一不重复的订单号
领导觉得之前的订单号太长,想要短一些的订单号,试过同时生成10000条不重复,再多可以自己试试,话不多说,直接贴代码
function getOrderNum($length = 10)
{
$timestamp = round(microtime(true) * 1000).rand(1,999999);
$hash = hash('sha256', $timestamp);
$shortHash = substr($hash, 0, $length);
// 如果需要增加唯一性,可以添加一些随机字符
// 注意:这会增加订单号的长度,所以请根据需要调整
$randomChars = '';
if ($length > 32)
{
$randomLength = $length - 32;
$randomChars = substr(str_shuffle('ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'), 0, $randomLength);
}
return date('Ymd').'-'.strtoupper($shortHash . $randomChars);
}
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。