首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP:基于id生成唯一的随机int数

问PHP:基于id生成唯一的随机int数
EN

Stack Overflow用户
提问于 2019-01-22 01:37:56
回答 2查看 1.7K关注 0票数 1

我目前正在寻找一种很好的方法来为SEPA事务生成一个唯一的随机数(端到端引用),使用PHP中的27位数字。我的要求是:

  • 必须是独一无二的
  • 只有int值,没有字母
  • 27位数字长度
  • 使用用户id和时间使ID唯一

我在这里尝试过这个解决方案,但这只给了我一个字母和数字的字符串:

代码语言:javascript
复制
md5( uniqid( mt_rand(), true ) );

有人有轻量级的解决方案或想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-22 01:43:35

代码语言:javascript
复制
echo $bira = date('YmdHis').rand(1000000000000,9000000000000);
echo "<br/>";
echo strlen($bira);

在前面加上时间戳,这样它就永远是独一无二的。

或echo $bira = time().rand(10000000000000000,90000000000000000);

绝食:

201901220142532979656312614 27

票数 4
EN

Stack Overflow用户

发布于 2019-01-22 01:44:08

这个怎么样:

代码语言:javascript
复制
$array = [];
$numberOfTransactions = 1;

while (count($array) < $numberOfTransactions) {
    $rand = mt_rand(100000000000000000000000000, 999999999999999999999999999);
    $array[$rand] = $rand;
}

print_r($array);

关联数组键是唯一的,所以您不会得到任何重复。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54300072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档