我正在尝试编写带前缀的唯一优惠券代码,以便有机会成为一家公司的实习生。到目前为止进展顺利,每次刷新页面时,我的代码都会生成250个长度为10的代码。但是,我正在发布带有前缀部分的问题。通常,优惠券代码看起来像这样,只是一个示例“ 1SC476XY3B”,但我希望每个代码都以“ AB”开头,然后是8个代码长度,因此总数为10。您能帮我吗?所有帮助将不胜感激,谢谢。
<?php
function unique_coupon_codes($number_of_codes,$exclude_codes_array='',$code_length = 10)
{
$characters = "0123456789QWERTYUIOPASDFGHJKLZXCVBNM";
$unique_codes = array();
for($j = 1 ; $j <= $number_of_codes; $j++)
{
$code = "";
for ($i = 1; $i <= $code_length; $i++)
{
$code .= $characters[mt_rand(0, strlen($characters)-1)];
}
if(!in_array($code,$unique_codes))
{
if(is_array($exclude_codes_array))
{
if(!in_array($code,$exclude_codes_array))
{
$unique_codes[$j] = $code;
}
else
{
$j--;
}
}
else
{
$unique_codes[$j] = $code;
}
}
else
{
$j--;
}
}
return $unique_codes;
}
echo '<h1>Unique Coupon Codes</h1>';
echo '<pre>';
print_r(unique_coupon_codes(250,'',10));
echo '</pre>';
答案 0 :(得分:0)
在初始化$code
变量时,需要进行一些小的更改。将$code = "";
更改为$code = "AB";
并以
unique_coupon_codes
函数
print_r(unique_coupon_codes(250, '', 8));
由于您已经有了长度为2个字符的前缀AB
,因此这里将生成8位数字的唯一代码。
答案 1 :(得分:0)
这样的事情怎么样? :-)
function unique_coupon_codes($number_of_codes,$exclude_codes_array=[],$code_length = 10, $code_prefix="") {
$characters="0123456789QWERTYUIOPASDFGHJKLZXCVBNM";
$unique_codes = array();
for($i=1;$i<=$number_of_codes;$i++) {
$code="";
for($o=1;$o<=$code_length;$o++) {
$code .= $characters[mt_rand(0, strlen($characters)-1)];
}
if(in_array($code, $unique_codes) || in_array($code, $exclude_codes_array)) {
$i--;
} else {
$unique_codes[$i] = $code_prefix.$code;
}
}
return $unique_codes;
}
echo '<h1>Unique Coupon Codes</h1>';
echo '<pre>';
print_r(unique_coupon_codes(250,'',8, 'AB'));
echo '</pre>';