在項目開發中,我們常常會需要生成一些包含隨機數字或字符、並在項目中具有唯一性的數字或字符串,如訂單號、收支流水號等等,方法有很多,以下分享我的一種思路。
/**
* 隨機生成流水號函數:
* @id int 數據表中具有唯一性的ID號
* @return string 返回具有唯一性的22位純數字字符串
*/
public function getFlowNumber($id)
{
$str = date('YmdHis') . substr($id . rand(100000000, 9999999999), 0, 8);
return $str;
}
說明:
1,由於傳入的$id本身取自數據表中的唯一ID,事實上相同帳號操作生成的字符串基本上可以保證唯一性了,即使多點登陸,同時操作生成,重複的概率也較低,當然,後邊再拼接隨機數並取其中的8位,其唯一性應該是可以保證的;
2,如果需要的是數字字母混合的字符串,也可以使用其它隨機種子或MD5等方式生成隨機部分的字符串;
3,寫入數數據庫時注意選用適當的數據類型;
如果文章對你有幫助,請打開支付寶搜索535149388,領取馬雲的紅包,使用餘額寶消費可抵扣,大家好,纔是真的好。