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の配列の3つのソート方法 phpクイックソート phpソートアルゴリズム phpソート関数
以上がPHP のランダムソートに重み係数を追加するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。