之前,使用in_array(),进行逐个查重,数组长度1万以上,而且每次随机码都会查询,效率比较低。下面是优化之后的一个结果。<?php
function genRandomString($len, $chars)
{
$charsLen = count($chars) - 1;
// 将数组打乱
shuffle($chars);
$output = "";
for ($i = 0; $i < $len; $i++) {
$output .= $chars[mt_rand(0, $charsLen)];
}
return $output;
}
// 生成指定数量随机码
$i = 0;
$codeLen = 6; // 随机码长度
$codeArr = [];
$randBase = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
$code_number = 100000;
$time = microtime(true)*1000;
while (true) {
风里来