Php 一次生成多个优惠券代码;以逗号分隔

Php 一次生成多个优惠券代码;以逗号分隔,php,random,Php,Random,我发现这解释了如何生成随机优惠券代码 我正在考虑使用该代码,一次生成多个优惠券(例如50张),同时用逗号分隔它们 输出为:优惠券-HMECN、优惠券-UYSNC等 代码如下和 $chars=“0123456789abcdefghijklmnopqrstuvxyz”; $res=“息票-”; 对于($i=0;$i

我发现这解释了如何生成随机优惠券代码

我正在考虑使用该代码,一次生成多个优惠券(例如50张),同时用逗号分隔它们

输出为:优惠券-HMECN、优惠券-UYSNC等

代码如下和

$chars=“0123456789abcdefghijklmnopqrstuvxyz”;
$res=“息票-”;
对于($i=0;$i<5;$i++){
$res.=$chars[mt_rand(0,strlen($chars)-1)];
}
echo$res。",";     
$chars=“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”;
$numcodetogenerate=5;
对于($n=0;$n<$numcodetogenerate;$n++)
{
$res=“息票-”;
对于($i=0;$i<5;$i++){
$res.=$chars[mt_rand(0,strlen($chars)-1)];
}
echo$res.“,”;
}

这里有一个更简洁(更快)的版本,可以满足您的需要:

function MakeCouponCode() {
  $res = "COUPON-";
  for($i = 0; $i < 5; ++$i)
    $res .= chr(mt_rand(0, 1) == 0 ? mt_rand(65, 90) : mt_rand(48, 57));
  return $res;
}

$coupons = array();
for($i = 0; $i < 5; ++$i)
  $coupons[] = MakeCouponCode();

echo implode(', ', $coupons);
为什么不使用


您可以使用优惠券代码生成器PHP类文件生成N个优惠券及其可自定义的优惠券,并使用各种选项添加带有自己前缀和后缀的自己的掩码。优惠券代码用逗号分隔

例如:
优惠券::生成(8);//J5BST6NQ

@Vulcan:一次生成多个代码,而不是每次运行PHP都生成一次。手工输入的优惠券代码太长了,而且最后还会有一个“,”。在我看来没有那么长。字符串末尾将没有',,请再次查看代码;)。啊,是的,你的权利,你的预挂:)。这比内爆更简洁,因为你只循环数组一次。生成的输出末尾有一个额外的“,”。@Max-如果你使用它,至少将
strlen($chars)-1
移出循环,因为PHP会计算每个循环中字符串的长度,或者更好的是,将其硬编码为36,或者使用我发布的方法,该方法使用ASCII值,而不是执行字符串查找。
$chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$numCodesToGenerate = 5;

for ($n = 0; $n < $numCodesToGenerate; $n++)
{
    $res = "COUPON-";

    for ($i = 0; $i < 5; $i++) {
      $res .= $chars[mt_rand(0, strlen($chars)-1)];     
    }

    echo $res . ","; 
}
function MakeCouponCode() {
  $res = "COUPON-";
  for($i = 0; $i < 5; ++$i)
    $res .= chr(mt_rand(0, 1) == 0 ? mt_rand(65, 90) : mt_rand(48, 57));
  return $res;
}

$coupons = array();
for($i = 0; $i < 5; ++$i)
  $coupons[] = MakeCouponCode();

echo implode(', ', $coupons);
COUPON-D707Y, COUPON-4B37E, COUPON-3O397, COUPON-M799X, COUPON-24Q36
$coupon_str = '';
$seperator = '';

for($i = 0; $i < 50; $i++) {
    $coupon_str .= $seperator . uniqid('COUPON-');

    $seperator = ',';
}

echo $coupon_str;
COUPON-502373ac95dd2,COUPON-502373ac95de8,COUPON-502373ac95ded,....