网站首页 > 知识剖析 正文
周年庆活动时,应活动促销要求,要实现下单可获得一个3位数的抽奖号码,待特定时间(商品下架截单后)进行直播抽奖,抽出一份幸运大奖执行免单,假定:共1000个SKU,奖品也只有1份。
大家应该很清楚,这个需求很简单,如果不要求必中,不要求限制中的人数,那么,直接随机数(mt_rand)获取即可。但如果要求1000个号码不重复。则只需要一个简单的函数即可解决,废话不多说,以下是思路:
1、初次使用:range(000,999); 生成 如: array(0, ……, 999)的数组。
2、使用:shuffle 打乱上面的数组元素排序。
3、使用:array_pop 获取最后一个元素,同时删除该元素。
4、将剩余的有999个元素的写入(或更新)表或redis等缓存文件等待下次使用。
5、使用 sprintf("%03d", 第3步获得的元素) 给抽奖码补零。
以下是代码参考:
function getCode() {
$array = array(123, 456, 789, ……); // 此处要改成从数据表或redis等缓存文件中获取到的数组
// 如果没有获取到数组,执行生成
if (empty($array)) {
// 生成拥有0~999的的元素的一维数组
$array = range(000,999);
// 打乱数组元素排序
shuffle($array);
}
// 第1步 获取数组中最后一个元素
$a = array_pop($array);
// 第2步 更新到素或缓存
// 这里需添加上你们的函数。将array_pop后的array数组写入或更新到数据表或redis等缓存文件。
// 第3步 补零后return回业务
return sprintf("%03d", $a);
}
方法很简单,高手略过吧,适合新手学习,已每一行都添加注释了。希望能对你有所帮助。
猜你喜欢
- 2024-11-14 vue uniapp中数组的操作方法 uniapp vuecli
- 2024-11-14 JavaScript Array 对象 javascript array splice
- 2024-11-14 js中数组方法全解 js数组常用的方法
- 2024-11-14 TS类型体操,看懂你就能玩转TS了 tststs
- 2024-11-14 JS原生对数组操作的常用方法 原生js操作dom
- 2024-11-14 PHP8中获取并删除数组中最后一个元素-PHP8知识详解
- 2024-11-14 mysqli_fetch_assoc常用的函数汇总
- 2024-11-14 碎片时间学编程「203]:根据功能对数组元素进行分组
- 2024-11-14 PHP是如何实现多线程编程的? php是如何实现多线程编程的
- 2024-11-14 PHP8的数组-PHP8知识详解 php8的jit
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)