У меня есть этот скрипт, который генерирует случайные промо-коды.Как я могу улучшить этот случайный сценарий генератора промокодов?
}
$length = 10;
$characters = '123456789ABCDEFGHJKMNPQRSTUVWXYZ';
$charactersLength = strlen($characters);
$event = $request->event;
$prefix = $request->prefix;
$quantity = $request->quantity;
$randomString = '';
for ($x = 0; $x <= $quantity; $x++) {
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charactersLength - 1)];
}
$pin = "$prefix"."$randomString";
$exists = Pin::where('pin', $pin)->first();
if(!$exists){
$new['pin'] = $pin;
$new['event'] = $event;
$new['user'] = '';
Pin::create($new);
}
$randomString = '';
}
Он работает, но его нужно оптимизировать, так как он может потребоваться навсегда, когда количество $ превышает пару тысяч.
Я подозреваю, что время свидания - это бит, который смотрит, существует ли штырь. Я уверен, что должен быть более эффективный способ гарантировать, что случайные строки уникальны.
Мысли? Благодаря!
****** Как отметил генерации случайных хэш был рассмотрен здесь ******
Возможно, часть 2 на этот вопрос тогда ...
Клиент запросил набор выбор символов для случайных кодов - «123456789ABCDEFGHJKMNPQRSTUVWXYZ». Есть ли способ ограничить вывод символов хешем md5?
Спасибо за указание, что из Джона. Я прочитал этот вопрос. Я не думал, что это был обман, когда я пытался генерировать массовое генерирование против создания рекламной консоли как пример. Однако сейчас я переосмысливаю весь подход. – RushVan