PHP生成唯一订单号
簡單從內到外解析一下這個訂單號生成過程:
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生成唯一订单号的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何在家里进行简单的糖画制作?
- 下一篇: array_multisort - 如何