function createStr($num = 700, $len = 6){
$numbers = range(0, 9);
$letters = range('a', 'z');
$uppers = range('A', 'Z');
$elements = array_merge($numbers, $letters, $uppers);
$n = 0;
$strings = [];
for($i = 0;$i < $num;$i++){
$str = '';
$keys = array_rand($elements, $len);
foreach($keys as $key){
$str .= $elements[$key];
}
if(in_array($str, $strings)){
$i--;
unset($str);
}else{
$strings[] = $str;
unset($str);
// echo $i. '->' .$str. "\r\n";
}
$n++;
}
print_r($strings);exit;
// echo "\r\n\r\n".$n;
}
问题:
当使用 $strings 数组保存时,在 $num = 630 以上时会造成无响应(命令行也是不出结果,一直跑),而630以下,则正常。
P.S. 目前只测了 $len = 6 的情况。
P.S.2 当使用正常的 echo 时,程序可以跑通。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.