PHP随机生成18位不重复的订单号代码实例

PHP代码: 

/**
 * 生成18位订单号
 * $length:随机数长度
 */
function generateOrderNumber($length=4){
	//14位的日期(年月日时分秒)
	$date=trim(date('Ymdhis ',time()));
	//初始化变量为0
	$connt = 0;
	//建一个新数组
	$temp = array();
	while($connt < $length){
		//在一定范围内随机生成一个数放入数组中
		$temp[] = mt_rand(0, 9);
		//$data = array_unique($temp);
		//去除数组中的重复值用了“翻翻法”,就是用array_flip()把数组的key和value交换两次。这种做法比用 array_unique() 快得多。
		$data = array_flip(array_flip($temp));
		//将数组的数量存入变量count中
		$connt = count($data);
	}
	//为数组赋予新的键名
	shuffle($data);
	//数组转字符串
	$str=implode(",", $data);
	//替换掉逗号
	$number=str_replace(',', '', $str);
	return $date.$number;
}

调用示例:

<?php
//商户订单号
$number= generateOrderNumber();
?>

到此这篇关于PHP随机生成18位不重复的订单号代码实例的文章就介绍到这了,更多相关PHP随机生成18位不重复的订单号内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • PHP生成唯一订单号

    在网上找了一番,发现这位同学的想法挺不错的,redtamo,具体的请稳步过去看看,我作简要概述,该方法用上了英文字母.年月日.Unix 时间戳和微秒数.随机数,重复的可能性大大降低,还是很不错的.使用字母很有代表性,一个字母对应一个年份,总共16位,不多也不少. 1. 复制代码 代码如下: <?php      $yCode = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J');      $orderSn = $yCode[intv

  • PHP生成唯一订单号的方法汇总

    第一种 复制代码 代码如下: 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,

  • PHP随机生成18位不重复的订单号代码实例

    PHP代码:  /** * 生成18位订单号 * $length:随机数长度 */ function generateOrderNumber($length=4){ //14位的日期(年月日时分秒) $date=trim(date('Ymdhis ',time())); //初始化变量为0 $connt = 0; //建一个新数组 $temp = array(); while($connt < $length){ //在一定范围内随机生成一个数放入数组中 $temp[] = mt_rand(0,

  • 随机生成10个不重复的0-100的数字(实例讲解)

    在面试时,面试官问了我一道js题:随机生成一个含有10个元素的数组,且元素为0-100的不重复的整数.当时的第一反应是for循环生成10个数字,但是可能会有重复的情况:进一步思考,需要对生成的数字进行验证才能放到数组里面,但是问题来了,如果恰好有重复的,那我之前for循环生成的10个数字就不够了.当时回答的不好,回来后再仔细思考一下,想出了2中解决方案,第一种其实是尝试过程中得出的,还是第二种比较好. 第一种: function random () { var arr = []; for (va

  • java 随机生成6位短信验证码实例代码

    生成6位随机数字其实很简单,只需一行代码,具体如下: String verifyCode = String.valueOf(new Random().nextInt(899999) + 100000); 具体实现发送短信验证码功能,以注册为例,其实现代码如下: 这里需要用到第三方短信验证码接口,这里用到的是乐信短信验证码接口,乐信接口API文档说明(http://www.lx598.com/apitext.html),乐信java调用短信验证码接口 demo(http://www.lx598.c

  • 从数组中随机取x条不重复数据的JS代码

    工作中经常遇到有关数组的一些操作 1. 从数据中随机取x条不重复的数据 (PS:下面的S.each是KISSY.each方法,大家可以改为for循环) 复制代码 代码如下: /*从数组arr中随机取x条不重复的数据 */ function myRand(arr,num){    var newArr = [];    rand(num);    //随机 x 个 function rand(k){        if(k==0){            return;        }     

  • php 随机生成10位字符代码

    复制代码 代码如下: function randStr($len) { $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz'; // characters to build the password from $string=''; for(;$len>=1;$len--) { $position=rand()%strlen($chars); $string.=substr($chars,$position

  • 利用sql函数生成不重复的订单号的代码

    复制代码 代码如下: ALTER function [dbo].[GetOrderNum]( @ebaystockflag varchar(20)//规则字母 ) returns varchar(100) AS BEGIN declare @dt CHAR(8) declare @flag varchar(20) set @flag='B'+@ebaystockflag set @dt=CONVERT(CHAR(8),GETDATE(),112) declare @max varchar(100

  • Java实现随机出题,10道10以内加减法计算代码实例

    本文实例为大家分享了Java实现随机出题,10道10以内加减法计算l的具体代码,供大家参考,具体内容如下 package com.swift; import java.awt.Toolkit; import java.util.Scanner; public class PlusQuiz { public static void main(String[] args) { int i=0; int number1=0,number2=0; for(;;) { number1=(int) (Mat

  • java随机生成10位数的字符串ID

    简述 项目中,有种业务需要当前表中存个另外一个表中的主键ID字段,如果用数据库自增的话,容易出现重复 比如A表主键ID自增1.2.3.....,B表主键ID自增1.2.3.....,A表中有个字段是B_Id,会出现a_id=3.b_id=3的情况,傻傻分不清楚这边主要分享的是一个随机生成10位永不重复的随机字符串,不啰嗦了,下面上代码 随机数生成工具类 /** * MathUtils.java * com.prereadweb.utils * Copyright (c) 2019, 北京链天下科

  • JAVA 16位ID生成工具类含16位不重复的随机数数字+大小写

    本文介绍了Java随机数,分享给大家,也顺便做个笔记 package com.fty.util; import java.security.SecureRandom; import java.util.Random; import java.util.concurrent.ThreadLocalRandom; public class UtilId { /** * 生成16位不重复的随机数,含数字+大小写 * @return */ public static String getGUID() {

  • Python随机生成一个6位的验证码代码分享

    1. 生成源码 复制代码 代码如下: # -*- coding: utf-8 -*- import random def generate_verification_code():     ''' 随机生成6位的验证码 '''     code_list = []     for i in range(10): # 0-9数字         code_list.append(str(i))     for i in range(65, 91): # A-Z         code_list.

随机推荐