教程集 www.jiaochengji.com
教程集 >  脚本编程  >  php  >  正文 php 权重计算方法(抽奖)

php 权重计算方法(抽奖)

发布时间:2016-10-02   编辑:jiaochengji.com
本文介绍下,php实现的一个简单计算权重的代码,多用于抽奖类程序,有需要的朋友参考下。

用php实现用户投资,当用户点击投资时,会返回三种不同的结果(即奖项:一等奖,二等奖,三等奖,谢谢抽奖)。
思路:
此奖值出现的概率要依次降低,于是就有了一个类似权重计算的一个算法了。

以下分享下这个权重计算的实现方法。

此实例仅适合二维数组且一维为数字索引的数组,数据数组结构如下:

$data=array(
 0=>array('id'=>1,'name'=>'一等奖','weight'=>'5'),
 1=>array('id'=>2,'name'=>'二等奖','weight'=>'10'),
 2=>array('id'=>3,'name'=>'三等奖','weight'=>'25'),
 3=>array('id'=>4,'name'=>'谢谢抽奖','weight'=>'60')
);

简单计算权重的算法,如下:

<?php
// 权重数值越高,被返回的概率越大
// edit by www.jbxue.com
function countWeight($data){
 $weight=0;
 $temp=array();
 foreach($data as $v){
  $weight+=$v['weight'];
  for($i=0;$i<$v['weight'];$i++){
   $temp[]=$v;//放大数组
  }
 }
 $int=mt_rand(0,$weight-1);//获取一个随机数
 $result=$temp[$int];
 return $result;
}
?>

输出结果:

Array
(
    [id] => 4
    [name] => 谢谢抽奖
    [weight] => 60
)

有兴趣的朋友,可以继续完善下本程序,做出一个漂亮的php抽奖程序。

您可能感兴趣的文章:
学习php抽奖程序之几率算法
php抽奖程序(抽取三名幸运观众)的核心代码
php抽奖小程序代码一例
php分时间段的抽奖程序代码
php抽奖计算的例子

您可能感兴趣的文章:
php 权重计算方法(抽奖)
php抽奖程序(抽取三名幸运观众)的核心代码
php抽奖小程序代码一例
php抽奖计算的例子
学习php抽奖程序之几率算法
php抽奖程序与随机广告实现算法
代码模板 | Go语言设计模式实战
PHP实现大转盘抽奖算法(代码实例)
php分时间段的抽奖程序代码
PHP jQuery开发简单翻牌抽奖的功能(代码实例)

关键词: php抽奖程序  抽奖代码   
[关闭]
~ ~