领导觉得之前的订单号太长,想要短一些的订单号,试过同时生成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);
}


标签: 后端开发 PHP 

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。