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

时间:2012-08-09 08:14:19

标签: php random

我发现这个Stack Overflow post解释了如何生成随机优惠券代码。

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

输出将是:COUPON-HMECN,COUPON-UYSNC等。

以下代码和codepad example available

      $chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
      $res = "COUPON-";

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

      echo $res . ",";     

4 个答案:

答案 0 :(得分:0)

$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 . ","; 
}

答案 1 :(得分:0)

这是一个更整洁的版本(更快),可以满足您的需求:

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

答案 2 :(得分:0)

为什么不使用uniqid()

$coupon_str = '';
$seperator = '';

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

    $seperator = ',';
}

echo $coupon_str;

输出:

COUPON-502373ac95dd2,COUPON-502373ac95de8,COUPON-502373ac95ded,....

答案 3 :(得分:0)

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

实施例:  coupon::generate(8); // J5BST6NQ