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如何生成不重复的序列号”这一关键问题有了一定的理解,具体使用情况还需要大家自己动手实验使用过才能领会,快去试试吧,如果想相关知识点的文章,欢迎关注亿速云行业资讯频道!

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

  1. php打包序列号,php怎么生成不重复的序列号

    php生成不重复的序列号的方法:1.通过"str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);"方式生成不重复的序列号:2.通过imp ...

  2. php 序列号生成规则,php如何生成不重复的序列号

    php生成不重复的序列号的方法:可以利用内置函数mt_rand()来实现.mt_rand()函数用于生成随机整数,例如要生成一个介于10和100之间的随机整数,具体代码为:[mt_rand(10, 1 ...

  3. java 生成不重复的序列号_根据自增ID生成不重复序列号

    实现根据long类型的用户ID生成6位随机邀请码,并且根据邀请码能算出用户ID.代码如下: /// /// 不重复随机字符串类 /// public class SerialNumberHelper ...

  4. 手动生成MyEclipse注册码及序列号(源代码)

    本文转自:  手动生成MyEclipse注册码及序列号http://visionsky.blog.51cto.com/733317/340855 好多朋友在找myeclipse的注册码,下面介绍种 ...

  5. oracle rpad mysql_Oracle生成不重复票号与LPAD,RPAD与NEXTVAL函数解析

    SELECT TO_CHAR(SYSDATE,'YYMMDD')||LPAD(REFUNDSEQ.NEXTVAL,6,'0') AS RES_ORDER_NO FROM DUAL 该语句拼接 时间 与 ...

  6. [连载]《C#通讯(串口和网络)框架的设计与实现》- 14.序列号的设计,不重复的实现一机一码...

    目       录 第十四章     序列号的设计... 2 14.1        设计原则... 2 14.2        设计思想... 3 14.3        代码实现... 4 14. ...

  7. mysql随机不连续数据_用MySQL里的Rand()生成 不连续重复 的随机数年龄以及随机姓名字符串...

    用MySQL里的Rand()生成 不连续重复 的随机数年龄以及随机姓名字符串 前言: RAND函数,返回在范围0到1.0内的随机浮点值.如果一个整数参数N被指定,它被用作种子值. 一,朋友问题描述如下 ...

  8. php 8位md5重复概率,高并发 php uniqid 用md5生成不重复唯一标识符方案

    高并发 php uniqid 用md5生成不重复唯一标识符方案 uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID. uniqid(prefix,more_entropy) prefi ...

  9. JAVA生成不重复随机数算法

    一个不错的算法,很简单,但有效.不过如果范围比较大,则占用内存大,就不推荐使用了.个人感觉1000个以内的就可以考虑.这东西也许你早就知道了,但我依然惊叹算法的力量. 看代码 import java. ...

最新文章

  1. Mysql InnoDB B+树索引和哈希索引的区别? MongoDB 为什么使用B-树?
  2. 小程序 - 效果处理之技巧合集(更新中...)
  3. 【开源】Caffe、TensorFlow、MXnet三个开源库对比
  4. 深入浅出JMS(一)——JMS简单介绍
  5. redis安装 linux步骤,【linux安装redis完整步骤】
  6. Eclipse多行注释方法
  7. D3.js以及通用JS(JavaScript)读取并解析server端JSON的注意事项
  8. Vista部署的一些收集
  9. SAP License:标准价格修改
  10. erlang随机数问题
  11. 步步高告诉你如何获客增长:4种数字化驱动案例
  12. 将voc2007数据集转换成yolo格式的数据集
  13. 大数据精准营销数据分析处理(一)
  14. MySQL的DECLARE...HANDLER使用
  15. 发送通知java带阿妈_变成了阴阳师的阿妈以后-阿妈回归(退坑通知)-变成了阴阳师的阿妈以后小说|变成了阴阳师的阿妈以后小说下载|SF轻小说...
  16. [yishen] 小慕读书web端学习笔记
  17. MacBook无故黑屏,按键没反应解决办法
  18. PC与西门子PLC通讯免费软件Libnodave
  19. 资深运维也不知道的那些事
  20. PPT中去除水印的方法

热门文章

  1. R语言使用ggplot2包的快速可视化函数qplot绘制分组分组点图(带状图)实战
  2. R语言unlist函数将复杂数据(list列表、dataframe、字符串String)对象处理成简单向量vector形式:将包含dataframe和字符串的向量列表转换为单个向量(删除数据名称)
  3. GAN(Generative Adversarial Network,GAN)模型之:InfoGAN、WGAN、DCGAN模型
  4. 特征工程+特征组合+特征交叉+特征变换+生成特征
  5. 可视化深度学习模型的训练误差和验证误差
  6. 朴素贝叶斯(NBM,Naive Bayesian Model)为什么朴素又有哪些形式?
  7. 脚本命令远程访问计算机,在远程电脑上执行任意命令 (利用 Autohotkey ahk http 服务器)...
  8. java面向对象特征及阐述,Java面向对象四个特征
  9. 十五、插入排序算法(两种方式)
  10. Caffe在Ubuntu 14.04 64bit 下的安装------pycaffe 配置