一个PHP抽奖码生成函数

奖券:3位数字
要求:1000份有一份为中奖号码,1000份内不能重复。

解决方案:

1、使用:range(0, 999); 生成 如: array(0, ……, 999)的数组。
2、使用:shuffle 打乱上面的所生成的数组元素排序。
3、使用:array_pop 获取最后一个元素,同时删除该元素。
4、将剩余的元素的数组的写入(或更新)表或redis等缓存文件等待下次取出使用。
5、使用 sprintf("%03d", 第3步获得的元素) 给抽奖码补零。

PHP代码:

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);
}

以上的操作就是这么简单,希望对你有所帮助。原文由本人发布至头条号。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值