php源代码序列号,php如何生成不重复的序列号

在PHP中生成不重复的序列号通常用于创建唯一订单号或其他标识符。文章介绍了几种方法,包括结合时间戳、随机数、uniqid()函数等。例如,可以使用`date('YmdHis') . rand(100000, 999999)`生成包含日期和随机数的序列号,或者结合`uniqid()`和字符串操作生成更复杂的唯一ID。在高并发场景下,可能需要更高级的策略,如结合微秒或数据库校验来确保唯一性。
摘要由CSDN通过智能技术生成

php如何生成不重复的序列号

发布时间:2021-03-03 09:38:37

来源:亿速云

阅读:92

作者:清风

这篇“php如何生成不重复的序列号”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“php如何生成不重复的序列号”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家通过这篇文章有所收获,下面让我们一起来看看具体内容吧。

php有什么用

php是一个嵌套的缩写名称,是英文超级文本预处理语言,它的语法混合了C、Java、Perl以及php自创新的语法,主要用来做网站开发,许多小型网站都用php开发,因为php是开源的,从而使得php经久不衰。php生成不重复的序列号的方法:1、通过“str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);”方式生成不重复的序列号;2、通过implode和array_map等函数实现生成不重复的序列号。

PHP生成唯一不重复编号的方法汇总

PHP如何生成唯一不重复编号?很多时候,比如订单都需要我们生成唯一编号。在常规情况下,PHP提供的uniqid()能够满足需求,但是在高并发的时候,我们就需要更好的方案来生成唯一不重复编号。本文将分享实例代码,希望对大家有所帮助。

前阵子有个电子商务项目,需要生成订单号。当时的考虑很简单,取系统时间加上随机数,或者使用 uniqid() 方法。仔细考虑下上述方法,在顾客购买量少的情况下,订单重复的可能性为零,但是在购买高蜂期生成的订单号重复是很有可能发生的。

第一种return date('Ymd') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);

第二种return date('Ymd').substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8);

第三种//生成24位唯一订单号码,格式:YYYY-MMDD-HHII-SS-NNNN,NNNN-CC,其中:YYYY=年份,MM=月份,DD=日期,HH=24格式小时,II=分,SS=秒,NNNNNNNN=随机数,CC=检查码

@date_default_timezone_set("PRC");

while(true){

//订购日期

$order_date = date('Y-m-d');

//订单号码主体(YYYYMMDDHHIISSNNNNNNNN)

$order_id_main = date('YmdHis') . rand(10000000,99999999);

//订单号码主体长度

$order_id_len = strlen($order_id_main);

$order_id_sum = 0;

for($i=0; $i

$order_id_sum += (int)(substr($order_id_main,$i,1));

}

//唯一订单号码(YYYYMMDDHHIISSNNNNNNNNCC)

$order_id = $order_id_main . str_pad((100 - $order_id_sum % 100) % 100,2,'0',STR_PAD_LEFT);

第四种:

在网上找了一番,发现这位同学的想法挺不错的,redtamo,具体的请稳步过去看看,我作简要概述,该方法用上了英文字母、年月日、Unix 时间戳和微秒数、随机数,重复的可能性大大降低,还是很不错的。使用字母很有代表性,一个字母对应一个年份,总共16位,不多也不少,呵呵。<?php

$yCode = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J');

$orderSn = $yCode[intval(date('Y')) - 2011] . strtoupper(dechex(date('m'))) . date('d') . substr(time(), -5) . substr(microtime(), 2, 5) . sprintf('%02d', rand(0, 99));

?>

生成效果:A422694333616096

感谢你的阅读,希望你对“php如何生成不重复的序列号”这一关键问题有了一定的理解,具体使用情况还需要大家自己动手实验使用过才能领会,快去试试吧,如果想阅读更多相关知识点的文章,欢迎关注亿速云行业资讯频道!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值