PHP生成不重复随机数

   /**
         * 生成11位不重复数字(可以截取不同位数)
         * 使用时间戳 时间戳是唯一的 前提是不支持高并发
         * 缺点:高并发时容易重复
         */
        echo time().'<br>';

        /**
         *  生成32位不重复数字
         *  使用uniqid + 微秒 + 随机数 + md5
         *  优点:高并发时并不会重复
         */
        echo md5(uniqid(microtime() . mt_rand())),'<br>';
        echo md5(uniqid(md5(microtime(true)),true)).'<br>';

        /**
         * 支持高并发且自增
         */
        echo date('YmdHis').substr(microtime(), 2, 5) . mt_rand(10000,99999)."<br>";
        echo  date('Ymd').substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8);

 

posted @ 2021-06-02 22:38  满眼都是她  阅读(298)  评论(0)    收藏  举报