我目前正在寻找一种很好的方法来为PHP中的27位数字生成SEPA交易(端到端参考)的唯一随机数。我的要求是:
我在这里尝试过此解决方案,但这只能给我一个包含字母和数字的字符串:
md5( uniqid( mt_rand(), true ) );
有人有轻量级的解决方案或想法吗?
答案 0 :(得分:3)
echo $bira = date('YmdHis').rand(1000000000000,9000000000000);
echo "<br/>";
echo strlen($bira);
在前面添加时间戳,因此时间戳始终是唯一的。
或echo $bira = time().rand(10000000000000000,90000000000000000);
输出:
201901220142532979656312614
27
答案 1 :(得分:1)
如何?
$array = [];
$numberOfTransactions = 1;
while (count($array) < $numberOfTransactions) {
$rand = mt_rand(100000000000000000000000000, 999999999999999999999999999);
$array[$rand] = $rand;
}
print_r($array);
关联数组键是唯一的,因此不会有任何重复。