PHP优惠码生成

2018-10-10T11:04:00
<?php 
/**
 * 生成各种码
 * @param int $nums             生成多少个优惠码
 * @param array $exist_array    排除指定数组中的优惠码
 * @param int $code_length      生成优惠码的长度
 * @param int $prefix           生成指定前缀
 * @return array                返回优惠码数组
 */
function generateCode( $nums,$exist_array=[],$code_length&nbsp;=&nbsp;6,$prefix = '' ) {
    $characters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    $promotion_codes = array();//这个数组用来接收生成的优惠码

    for($j&nbsp;=&nbsp;0&nbsp;;&nbsp;$j < $nums;&nbsp;$j++) {
        $code = '';
        for ($i&nbsp;=&nbsp;0;&nbsp;$i < $code_length;&nbsp;$i++) {
            $code&nbsp;.=&nbsp;$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;
}
当前页面是本站的「Baidu MIP」版。发表评论请点击:完整版 »