php实现按照权重随机排序数据的方法

  本文实例讲述了php实现按照权重随机排序数据的方法。分享给大家供大家参考。

  具体实现方法如下:

  

复制代码 代码如下:

  <?php

  /**

  * @param array $weight 权重  例如array('a'=>10,'b'=>20,'c'=>50)

  * @return string key   键名

  */

  function roll($weight = array()) {

  $roll = rand ( 1, array_sum ( $weight ) );

  $_tmpW = 0;

  $rollnum = 0;

  foreach ( $weight as $k => $v ) {

  $min = $_tmpW;

  $_tmpW += $v;

  $max = $_tmpW;

  if ($roll > $min && $roll <= $max) {

  $rollnum = $k;

  break;

  }

  }

  return $rollnum;

  }

  $row=roll(array('a'=>10,'b'=>20,'c'=>50));

  echo $row;

  ?>

  希望本文所述对大家的php程序设计有所帮助。