在项目开发中,我们常常会需要生成一些包含随机数字或字符、并在项目中具有唯一性的数字或字符串,如订单号、收支流水号等等,方法有很多,以下分享我的一种思路。
/**
* 随机生成流水号函数:
* @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,领取马云的红包,使用余额宝消费可抵扣,大家好,才是真的好。