从具有唯一数字的模式中获取随机数
假设模式是 123456。
在 php 中,是否可以获取长度精确的六位数字,并且数字在生成的编号中不应重复一次以上。
456136 -- all digit are unique right
56136 -- wrong digit 4 is missing
456436 -- wrong digit 4 repeats
Let say if pattern is 123456.
In php is it possible to get number exact six digits in length and digit should not repeat more than once in generated no.
456136 -- all digit are unique right
56136 -- wrong digit 4 is missing
456436 -- wrong digit 4 repeats
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
如果您需要 1-6 位数字
如果您需要 1-9 位数字
手动
If you need 1-6 digits
If you need 1-9 digits
Manual
您可以首先使用
str_split()
将模式拆分为数字数组:然后,您可以使用
shuffle()
< /strong> 在该数组上,因此它的元素是随机顺序的:最后,您可以
implode()
将随机数组恢复为字符串:转储该变量的内容:
您将得到如下结果:
始终是六位数字,始终是您指定的数字;并且没有一个使用次数超过模式中指定的次数。
You could start by splitting your pattern into an array of digits, using
str_split()
:Then, you could use
shuffle()
on that array, so its elements are in random order :And, finally, you can
implode()
that randomized array back to a string :Dumping the content of that variable :
You'll get results like these ones :
Always six digits, always the digits you specified ; and none used more times than specified in the pattern.
这应该会给你 0 次重复:
This should give you 0 repeats:
您可以尝试以下操作:
演示:
第一次运行:
http://codepad.org/31AKqeYz
第二次运行: http://codepad.org/ckuUQCP3
You can try this:
Demo:
1st Run:
http://codepad.org/31AKqeYz
2nd Run: http://codepad.org/ckuUQCP3