PHP算法-生成序列号_PHP_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > PHP > PHP算法-生成序列号

PHP算法-生成序列号

 2017/9/8 17:08:58  erntoo  程序员俱乐部  我要评论(0)
  • 摘要:/***根据当前无重复的$codes,补充生成长度为$length,总数为$amount的**@paramint$length*长度*@paramint$amount*需要总数*@paramstring$prefix*前缀*@paramarray$codes*初始codes*@returnarray$codes无重复的codes,含输入参数*/myrand($length,$amount=1,$prefix='',$codes=[]){$seed=['2','3','4','5','6'
  • 标签:PHP 算法
class="php" name="code">/**
 * 根据当前无重复的$codes,补充生成长度为$length,总数为$amount的
 *
 * @param int $length
 *            长度
 * @param int $amount
 *            需要总数
 * @param string $prefix
 *            前缀
 * @param array $codes
 *            初始codes
 * @return array $codes 无重复的codes,含输入参数
 */
myrand($length, $amount = 1, $prefix = '', $codes = []) {
    $seed = [ '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];
    $codes_tmp = [];
    $need = $amount - count($codes);
    for ($c = 0; $c < $need; $c++) {
        $code = '';
        for ($i = 0; $i < $length; $i++) {
            $index = rand(0, 31);
            $code .= $seed[$index];
        }
        $codes_tmp[] = $prefix . $code;
    }
    $codes = array_unique(array_merge($codes, $codes_tmp));
    unset($codes_tmp);
    $number = count($codes);
    $d = $amount - $number;
    if ($d > 0) {
        $codes = array_unique(array_merge($codes, myrand($length, $amount, $prefix, $codes)));
    }
    return $codes;
}

?

发表评论
用户名: 匿名