<?php
/**
* 生成各种码
* @param int $nums 生成多少个优惠码
* @param array $exist_array 排除指定数组中的优惠码
* @param int $code_length 生成优惠码的长度
* @param int $prefix 生成指定前缀
* @return array 返回优惠码数组
*/
function generateCode( $nums,$exist_array=[],$code_length = 6,$prefix = '' ) {
$characters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$promotion_codes = array();//这个数组用来接收生成的优惠码
for($j = 0 ; $j < $nums; $j++) {
$code = '';
for ($i = 0; $i < $code_length; $i++) {
$code .= $characters[mt_rand(0, strlen($characters)-1)];
}
//如果生成的4位随机数不再我们定义的$promotion_codes数组里面
if( !in_array($code,$promotion_codes) ) {
if( is_array($exist_array) ) {
if( !in_array($code,$exist_array) ) {//排除已经使用的优惠码
$promotion_codes[$j] = $prefix.$code; //将生成的新优惠码赋值给promotion_codes数组
} else {
$j--;
}
} else {
$promotion_codes[$j] = $prefix.$code;//将优惠码赋值给数组
}
} else {
$j--;
}
}
return $promotion_codes;
}