所以...我正在测试一些东西并注意到当我运行此代码时:
$arr = str_split("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890", 1);
print_r(implode(array_rand(array_flip($arr), 16)));
输出是
Refresh 1: BDFIJKPTVkl12789
Refresh 2: HIJKMQWYdfmorsw3
Refresh 3: FGHMNRVYfhknouw5
Refresh 4: AFIJKRSVeiuwx579
Refresh 5: DJORYZcgijlpqry1
Refresh 6: EISWbhjmoqr45689
Refresh 7: CDEFOTXdhkloqr27
Refresh 8: AEFIKLNORSknx349
Refresh 9: DEFHJMTVZcgpstz0
Refresh 10: CLQTZbefhnpq1279
为什么输出每次都是以1到5个大写字母开头?
这种“随机性”对我来说似乎很奇怪。
我想知道为什么我会得到这个结果。
array_rand(自 PHP 5.2.10 起)不再打乱其生成的随机键列表(您会注意到输出字符串均按字母顺序排列,即字符的顺序与输入字符串中的顺序相同)。如果您不想要这种行为,请使用shuffle and array_slice反而:
$arr = str_split("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890", 1);
shuffle($arr);
echo implode('', array_slice($arr, 0, 16));
Output:
dU54f9wBjZbAKgCP
3v4l.org 上的演示
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)