• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP数据自增情况下生成的随机数不重复

php 搞代码 3年前 (2022-01-22) 23次浏览 已收录 0个评论

这篇文章主要给大家介绍了利用PHP基于自增数据如何能生成不重复的随机数,文中给出了详细的示例代码供大家参考学习,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。

本文主要介绍了PHP基于自增数据生成不重复的随机数的相关内容,分享出来供大家参考学习,下面多说无益 直接上代码:

关键点在于生成的自增数据位数控制

位数控制在于两个地方

1、 $base 基数组 如果是8位这个数组必须是8位

2、 $i 自增数,自增数不能超过8位数

当前简单分析的结果就是以上。大家如果是全局不重复,还是建议使用uuid之类的比较合适。

示例代码:

function swap($n,$base) {$mask = 19; //1 + 2 + 16 $n = intval($n, 10); $idx = $n & $mask;//取出标志位 $xor = $base[$idx] ^ $n;//根据标识为找到对应的base,异或n  return (($xor | $mask) ^ $mask) | $idx;//覆盖标识位}$newArray=[];$base = array ( 0 => 1918407, 1 => 5529570, 2 => 6527234, 3 => 6550962, 4 => 8054672, 5 => 3141234, 6 => 2125630, 7 => 6978033, 8 => 4623630, 9 => 4736420, 10 => 7767295, 11 => 9679880, 12 => 1665600, 13 => 6044373, 14 => 4661383, 15 => 5771843, 16 =&gt<i>·本2文来源gaodai$ma#com搞$代*码网2</i><strong>搞gaodaima代码</strong>; 2206123, 17 => 5685396, 18 => 5571647, 19 => 7178311,);for ($i=0;$i<1000000;$i++) { $newArray[]= swap($i,$base)."\r\n";}

以上就是PHP数据自增情况下生成的随机数不重复的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP数据自增情况下生成的随机数不重复

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址