当前位置: 首页 > news >正文

最便宜网站推广公司产品

最便宜网站,推广公司产品,wordpress后台登陆地址,中信建设有限责任公司武汉分公司承建项目我即将创建“lottary系统”.看看我的桌子:userid-lottaryid-amount1 -------- 1 ---- 12 -------- 1 ---- 103 -------- 1 ---- 154 -------- 1 ---- 20我想选择一个胜利者.另一个人获得第二名.我无法随机选择获胜者,因为第四位用户有20张门票而第一位用户只有一张.…

我即将创建“lottary系统”.

看看我的桌子:

userid-lottaryid-amount

1 -------- 1 ---- 1

2 -------- 1 ---- 10

3 -------- 1 ---- 15

4 -------- 1 ---- 20

我想选择一个胜利者.另一个人获得第二名.

我无法随机选择获胜者,因为第四位用户有20张门票而第一位用户只有一张.

因此,我需要按重量生成随机结果,以便更公平.

我发现下面的PHP功能,但我无法弄清楚如何使用它.

function weighted_random_simple($values, $weights){

$count = count($values);

$i = 0;

$n = 0;

$num = mt_rand(0, array_sum($weights));

while($i < $count){

$n += $weights[$i];

if($n >= $num){

break;

}

$i++;

}

return $values[$i];

}

$values = array('1', '10', '20', '100');

$weights = array(1, 10, 20, 100);

echo weighted_random_simple($values, $weights);

我必须将userid colomn作为数组提取到$values并将colomn的数量提取到$weights.但我不敢.

到目前为止,这是我的代码:

$query = $handler->prepare("SELECT

`cvu`.`lottaryid` as `lottaryid`,

`cvu`.`userid` as `userid`,

`cvu`.`amount` as `amount`,

`members`.`id` as `members_memberid`,

`members`.`username` as `username`

FROM `lottariesandmembers` as `cvu`

LEFT JOIN `members` as `members` ON `cvu`.`userid` = `members`.`id` WHERE `cvu`.`lottaryid` = 2");

$query->bindParam(':lottaryid', $lottaryid, PDO::PARAM_INT);

$query->execute();

while($r = $query->fetch()) {

for ( $count=1 ; $count <= $r["amount"] ; $count++ ) {

$abcprint = "$r[userid].$count - $r[username] -
";

echo "$abcprint";

}

}

这个代码我只列出了用户数量.例如:

1.1 user1

2.1 user2

2.2 user2

2.3 user2

..

2.10 user2

3.1 user3

..

3.15 user3

4.1 user4

..

4.20 user4

等等.但我仍然坚持如何在该名单上挑选一名获胜者.

如果你想帮助我,我想合并这些代码并创建这个小脚本.

如果你在另一方面看到解决方案,我也会开放头脑风暴.

解决方法:

您可以只构建一个大型数组,然后从该数组中随机选择一个值,而不是像您一样打印出值.

while($r = $query->fetch()) {

for ( $i=0; $i <= $r["amount"]; $i++ ) {

// Add the user into the array as many times as they have tickets

$tickets[] = $r['userid'];

}

}

// select the first place winner

$first = $tickets[mt_rand(0, count($tickets) - 1)];

// remove the first place winner from the array

$tickets = array_values(array_filter($tickets, function($x) use ($first) {

return $x != $first;

}));

// select the second place winner

$second = $tickets[mt_rand(0, count($tickets) - 1)];

我确信有一种更有效的方法可以使用数学来做到这一点,但我需要考虑一下……

标签:php,mysql

来源: https://codeday.me/bug/20190611/1220909.html

http://www.lbrq.cn/news/2638171.html

相关文章:

  • 网站的主题网站浏览器
  • 沈阳网站做app推广公司
  • ubuntu server wordpress石家庄seo网站管理
  • 免费推广seo本溪seo优化
  • 靖江网站微信营销软件免费版
  • 龙岩电商公司seo搜索引擎排名优化
  • 合肥晨曦网站建设互联网营销师证书
  • 鞍山建设工程信息网站武汉推广服务
  • 怎么做创业网站爱站工具
  • 重庆做商城网站设计免费建网页
  • 用.net core 做网站google chrome
  • 泰州网站建设服务热线论文关键词
  • 网站建设 自己的服务器电商推广
  • 自己做的网站响应速度慢百度推广的步骤
  • 深圳方维网站建设seo顾问服务 乐云践新专家
  • 专业做网站咨询seo点击排名器
  • 了解网站建设企业seo整站优化方案
  • 二级域名购买平台优化设计英语
  • 成都微信网站建设多少优化关键词方法
  • 上海景点排名前十久久seo综合查询
  • 域名解析网站建设少女长尾关键词挖掘
  • 校园超市网站开发背景百度正版下载并安装
  • app制作网站有哪些 请列举网站及搜索引擎优化建议
  • 合肥++网站建设莆田seo
  • 宁波网页网站制作离我最近的广告公司
  • 购物网站哪个质量好电商培训机构有哪些哪家比较好
  • 东莞塘厦网站制作线上推广方案怎么写
  • jsp 网站开发教程新网站百度收录
  • 国家重点建设裤网站网络推广页面
  • 南京网站建设一条龙手机关键词排名优化
  • TensorFlow深度学习实战(29)——自监督学习(Self-Supervised Learning)
  • 如何提高云手机中数据信息的安全性?
  • Spring Boot全局异常处理与日志监控实战指南
  • 数据结构04 栈和队列
  • ENSP防火墙安全策略简单案例
  • 案件线索展示与交付项目