日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

PHP生成唯一订单号

發布時間:2024/9/19 php 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP生成唯一订单号 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
$order_number = date('Ymd').substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8);

簡單從內到外解析一下這個訂單號生成過程:

1、date("Ymd"):這個很容易理解,是在最前方拼接一個當前年月日組成的數字。

2、uniqid():此函數獲取一個帶前綴、基于當前時間微秒數的唯一ID。

3、substr(uniqid(), 7, 13):由于uniqid()函數生成的結果前面7位很久才會發生變化,所以有或者沒有對于我們沒有多少影響,所以我們截取后面經常發生變化的幾位。

4、str_split(substr(uniqid(), 7, 13), 1):我們將剛剛生成的字符串進行分割放到數組里面,str_split()第二個參數是每個數組元素的長度。

5、array_map('ord', str_split(substr(uniqid(), 7, 13), 1))):其中array_map()函數作用為:函數返回用戶自定義函數作用后的數組,意思就是ord是函數ord(),而后面第二個參數是ord()函數的參數。可以這么理解ord(str_split(substr(uniqid(), 7, 13), 1)))。然后ord()是干啥的,ord()函數php內置函數:返回字符串的首個字符的 ASCII 值,意思就是把第二個參數生成的數組每個元素全部轉換為數字,因為剛剛我們截取的字符串中含有字母,不適合訂單號。

6、implode():很簡單了,把剛剛那個轉換成數字的數字在拼接成為一個數字。

7、由于剛剛生成的隨機數可能會長短不一(原因就是,每個字符轉換為ASCII值可能不一樣,有些是2位,有些可能是一位),所以我們同意截取0-8

8、然后加上剛剛的日期數字,現在就湊成了一個等長的高大上的訂單號了~

總結

以上是生活随笔為你收集整理的PHP生成唯一订单号的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。