php 实现抽奖功能

2023-11-17

记录借载

核心算法

<?php

namespace app\Server;

class LuckDraw
{
    public static function get_rand($arr){
        $result = '';

        $proSum = array_sum($arr);

        foreach ($arr as $key => $proCur){ //1 5 10 12 22 50

            $randNum = mt_rand(1,$proSum);

            if ($randNum <= $proCur){
                $result = $key;
                break;
            }else{
                $proSum -= $proCur;
            }
        }

        unset($arr);
        return $result;
    }
}

控制器调用

public function luckDraw(){
        $prize = array(
            array('id' => 1,'text' => '2022 ipad Pro','v' => 1),
            array('id' => 2,'text' => 'iphone 12','v' => 5),
            array('id' => 3,'text' => '华为p50','v' => 10),
            array('id' => 4,'text' => '一加手机','v' => 12),
            array('id' => 5,'text' => '小米14','v' => 22),
            array('id' => 6,'text' => '很遗憾未中奖','v' => 50),
        );

        $prize = array_combine(array_column($prize,'id'),$prize);

        foreach ($prize as $key => $val){
            $arr[$val['id']] = $val['v'];
        }

        $rid = LuckDraw::get_rand($arr);

        $res['yes'] = $prize[$rid]['text'];
        unset($prize[$rid]);

        shuffle($prize);

        for ($i = 0; $i < count($prize);$i++){
            $pr[] = $prize[$i]['text'];
        }

        $res['no'] = $pr;
        dd($res);


    }

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

php 实现抽奖功能 的相关文章

  • 子目录中的 CakePHP 控制器和模型

    你好 我想知道如何将我的组件和模型放在子目录中 假设我有一个 Web 应用程序 它有 3 个不同的区域 管理员 用户 开发人员 每个区域执行不同的操作并具有完全不同的界面 所以我希望管理员去http www site com admin h
  • WooCommerce:在未登录用户的结帐页面中默认设置国家/地区

    如何将国家 地区设为常规 未注册用户 的默认国家 地区 但如果买家有个人账户并进入该国 他在结帐时不会被拖欠吗 我尝试过使用WooCommerce 在结帐页面中默认设置国家 地区 https stackoverflow com questi
  • 在数据库中存储差异的最紧凑方式是什么?

    我想实现类似于维基媒体的修订历史的东西 最好使用的 PHP 函数 库 扩展 算法是什么 我希望差异尽可能紧凑 但我很高兴只能显示每个修订版与其同级修订版之间的差异 并且一次只能回滚一个修订版 在某些情况下 只有几个字符可能会发生变化 而在其
  • 如何获取与 PHP 中的日期数组相比最接近的日期

    这个帖子 https stackoverflow com questions 11012891 how to get most recent date from an array of dates几乎为我回答了这个问题 但我有一个特定的需求
  • 运行 shell 命令并将输出发送到文件?

    我需要能够通过 php 脚本修改我的 openvpn 身份验证文件 我已将我的 http 用户设置为免通 sudoer 因为这台机器仅在我的家庭网络中可用 我目前有以下命令 echo shell exec sudo echo usernam
  • 根据产品变体术语将收件人添加到 Woocommerce 电子邮件通知

    我创建了一个 Woocommerce 插件并要求它做两件事 根据购物车中的产品变体 向特定电子邮件地址发送通知消息 电子邮件必须仅包含相关产品 不得包含其他属性的产品 例如 产品 A 具有名为 Chef 的属性 其中 Chef one 和
  • Php 会话标头已经发送错误[重复]

    这个问题在这里已经有答案了 可能的重复 php 标头已发送错误 https stackoverflow com questions 3319207 php headers already sent error 我已附上我的代码 该代码用于
  • 如何使用 facebook 用户登录我的网站?

    我想知道 facebook 如何让用户登录我们的网站 我的意思是用户需要注册到我的网站才能发表评论 我如何通过我的 php 代码检查它是否是登录用户 我听说你只能用javascript检查它是否是登录用户 感谢您的任何解释 您可以使用脸书
  • Apache“无法初始化模块”,因为更改 PHP 配置后模块和 PHP 的 API 不匹配

    php v 给出了这个 PHP Warning PHP Startup memcache Unable to initialize module Module compiled with module API 20060613 PHP co
  • 使用 shell_exec 将 PHP 转换为 Powershell

    如果我运行 output shell exec powershell get service dhcp 我得到了 dhcp 服务的完美输出 显示正在运行 但如果我运行 output shell exec powershell get use
  • 防止重复数据输入mysql数据库

    我试图让我的电子邮件订阅服务拒绝数据库中已存在的电子邮件 这样用户就不会订阅同一封电子邮件两次 这就是我所拥有的 但它不起作用 有什么想法吗
  • 如何简单地检查服务器PHP版本是否为5或以上?

    我正在为程序创建预安装清单 该程序需要 PHP5 因此我需要检查列表脚本来检查 PHP5 的可用性 有一个函数为phpversion 将以以下格式返回5 3 6或类似的 然而 我希望清单非常简单 只是告诉你是或否 所以显示当前版本对我没有多
  • 如何解码这个 JSON 字符串?

    这是我从 feed finder url 中得到的字符串 JSON 编码 updated 1265787927 id http www google com reader api 0 feed finder q u003dhttp itca
  • drupal 7 将实际内容存储在数据库中的哪里?

    我打开了 drupal 7 的数据库并在表中查找node node revisions and node types并且找不到 drupal 存储实际的位置body节点 内容 的 有人有线索吗 哦 我刚刚找到了 在 D7 中 他们实现了字段
  • 将 Php 数组编码为 json [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想对我的 php 数组进行编码 A
  • PHP:如何将信息返回到等待的脚本并继续处理

    假设有两个脚本Requester php和Provider php Requester需要Provider进行处理并向其发出http请求 Provider php data data 在这种情况下 Provider 很快就找到了答案 但为了
  • CodeIgniter 控制器构造函数

    我对 codeigniter 很陌生 我想知道控制器中构造函数的含义是什么 我在 codeigniter 教程中看到以下代码 class upload extends CI Controller function construct par
  • 如何在按钮上执行mysql [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions PHP 单击按钮时如何执行 SQL
  • php_network_getaddresses: getaddrinfo 失败: 名称或服务未知 (0) 连接失败..!

    我正在使用 php 邮件程序功能 但出现以下错误 如何修复它 2016 01 22 06 15 48 SMTP 错误 无法连接到服务器 php network getaddresses getaddrinfo失败 名称或服务未知 0 连接失
  • 如何访问带有美元符号的 PHP 对象属性?

    我有一个 PHP 对象 其属性中有一个美元 符号 如何访问该属性的内容 例子 echo object gt variable Ok echo object gt variable WithDollar Syntax error With 变

随机推荐

  • 华为od机试 Java 【编码方式】

    题目 你需要创建一个特殊的整数编码程序 在这个程序中 数字较小时 它的编码占用的空间也应更小 你的任务是根据以下规则将一个整数转换为一个特殊的编码字符串 将整数转换为它的二进制形式 从右到左每7位组成一个编码单元 在每个编码单元的前面添加一
  • C语言指针(一)——什么是指针及指针的定义

    1 什么是指针 计算机中所有的数据都必须放在内存中 不同类型的数据占用的字节数不一样 例如int 占用4个字节 char占用1个字节 为了正确地访问这些数据 必须为每个字节都编上号码 就像门牌号一样 每个字节的编号是唯一的 根据编号可以准确
  • 他98年的,我玩不过他...

    现在的小年轻真的卷得过分了 前段时间我们公司来了个98年的 工作没两年 跳槽到我们公司起薪18K 都快接近我了 后来才知道人家是个卷王 从早干到晚就差搬张床到工位睡觉了 最近和他聊了一次天 原来这位小老弟家里条件不太好 一大家子指望他一个人
  • Java 责任链模式

    责任链模式 一 什么是责任链模式 二 责任链模式的优势和劣势 2 1 优势 2 2 劣势 三 示例 一 什么是责任链模式 责任链模式定义 为了避免请求发送者与多个请求处理者耦合在一起 于是将所有请求的处理者通过前一对象记住其下一个对象的引用
  • YOLOv5+deepsort实现目标追踪。(附有各种错误解决办法)

    一 YOLOv5算法相关配置 这里如果是自己只想跑一跑YOLOV5的话 可以参考本章节 只想跑通YOLOv5 deepsort的看官移步到下一章节 1 1 yolov5下载 yolov5源码在github下载地址上或者Gitee上面都有 需
  • Critical dependency: the request of a dependency is an expression(import)

    定位到vue文件问题所在位置 export default created 告警所在 import md file then moduleFile gt catch err gt 原因 webpack 版本问题 webpack4中动态imp
  • 小程序中轮播图u-swiper图片无法显示问题

    问题 uview官网中 指定的图片路径字段为image 完全按照uview写轮播图却无法正常显示 解决方法 1 把image字段改成url字段 2 给u swiper加上 keyName image 最后找到了总结原因 npm下载的uvie
  • 【Spring源码】createBeanInstance()

    目录 创建实例 createBeanInstance 有参构造 autowireConstructor 无参构造 instantiateBean 实例化策略 instantiate createBeanInstance英文版 autowir
  • 你能写一个AIGC的python程序

    当然 我可以为您编写一个使用 Python 编写的 AIGC 程序 AIGC Artificial Intelligence Game Competition 是一种人工智能竞赛 其中参赛者需要编写人工智能程序 让其在模拟或真实游戏中进行操
  • linux服务器端启动NFS报“Job for nfs-server.service canceled.”的解决办法

    linux服务器端启动NFS报 Job for nfs server service canceled 的解决办法 网上百度了好久都没找到这个报错的原因 白嫖失败 打开linux的系统日志 tail f var log messages 再
  • CppUnit测试框架入门

    测试驱动开发 TDD 是以测试作为开发过程的中心 它坚持 在编写实际代码之前 先写好基于产品代码的测试代码 开发过程的目标就是首先使测试能够通过 然后再优化设计结构 测试驱动开发式是极限编程的重要组成部分 XUnit 一个基于测试驱动开发的
  • Spring Boot学习(一)之Controller的使用

    Controller 处理http请求 RestController RestController注解相当于 ResponseBody Controller合在一起的作用 Spring4之后新加入的注解 原来返回json需要 Respons
  • Pydantic系列之Model

    Model类 Python泛型类 TypeVar 是一个泛型类型变量 使用 bound 参数来限制所生成的类型的继承关系 from typing import Generic TypeVar from pydantic import Bas
  • Windows使用cmake编译dll

    目录 工具 注意事项 工具 CMake MinGW CMake工具负责将CMakeLists txt配置文件转换成相关的MakeFile脚本 本身并不参与编译 而是使用MinGW工具进行编译 在Linux系统使用CMake编译需要执行以下命
  • HashMap 面试题 11 问,看这篇就够了

    1 请你说说 HashMap 的数据结构有什么区别 jdk1 7 采用的是数组 链表结构 在 jdk1 8 采用数组 链表 红黑树的结构 2 上面说到 jdk1 8 之后增加了红黑树 什么 情况下转红黑树 什么情况下又转链表的 1 当链表的
  • 错误隐藏学习手记(三)

    帧内错误隐藏算法集合 1 空间加权像素平均算法 加权像素平均插值算法 P0就是丢失的宏块 灰色的是最近的像素点 2 方向插值 1 边缘检测及梯度计算 使用Sobel算子 计算的是Sx和Sy 水平边缘和垂直边缘 下图中 a b c d是缺失的
  • android:configChanges属性总结

    http blog csdn net zhaokaiqiang1992 article details 19921703 android中的组件Activity在manifest xml文件中可以指定参数android ConfigChan
  • 查看aspx文件安装什么服务器,aspx文件怎么打开?手把手教你怎么打开aspx文件

    原标题 aspx文件怎么打开 手把手教你怎么打开aspx文件 在电脑里面 有许多不同格式的文件 而不同文件的打开方法也不一样 比如最近就有位朋友看见了一个aspx文件 不知道怎么打开 其实 打开aspx文件很简单 只要右键 aspx文件 选
  • 微信小程序退出重新进入时跳转特定页面

    微信小程序退出时会记录当前页面的状态 短时间内再次进入会显示退出前的状态 解决方案 在app js文件中添加onHide方法 onHide方法监听小程序切后台 在app js文件中使用会在每次程序退出时调用 onLaunch functio
  • php 实现抽奖功能

    记录借载 核心算法