php 简单计算权重的方法(适合抽奖类的应用)
Jun 21, 2016 am 08:49 AM最近因项目需求需要做一个抽奖类的应用,用户点击抽奖,会返回三种不同的结果(即奖项:一等奖,二等奖,三等奖,谢谢抽奖),很显然,这个奖值出现的概率要依次降低了。这就涉及到了一个类似权重计算的一个算法了。根据需求想了很久,也总算是通过一个简单的权重计算办法将这件事情搞定了,概率还是在预计范围之内的。
下面就将这个权重计算的方法概述下。
首先说明的是这个例子在这里仅适合二维数组且一维为数字索引的数组,数据数组结构如下:
$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') );
下面是简单计算权重的算法
// 权重数值越高,被返回的概率越大 // author www.Alixixi.com function countWeight($data){ $weight=0; $temp=array(); foreach($data as $v){ $weight+=$v['weight']; for($i=0;$i <p><font face="Courier New">计算结果返回如下:</font></p> <p><font face="Courier New">Array<br> (<br> [id] => 4<br> [name] => 谢谢抽奖<br> [weight] => 60<br> )</font></p> <p style="width:100%;text-align:center;margin:10px 0"> <br> <br> </p><p style="width:100%;text-align:center;margin:10px 0"> </p><p class="clear"></p>

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Apakah perbezaan antara Huawei GT3 Pro dan GT4?

Betulkan: Alat snipping tidak berfungsi dalam Windows 11

Cara Membetulkan Ralat Tidak Dapat Menyambung ke App Store pada iPhone

Isih tatasusunan menggunakan fungsi Array.Isih dalam C#

Kaedah mudah dan jelas untuk menggunakan fungsi PHP array_merge_recursive().

Cara menggunakan fungsi array_combine dalam PHP untuk menggabungkan dua tatasusunan menjadi tatasusunan bersekutu

Penjelasan terperinci tentang penggunaan fungsi PHP array_fill().
