【发布时间】:2016-02-05 17:36:10
【问题描述】:
我有一个数组,每个值都有权重,用于根据这些权重检索随机值。我过去用过这样的东西:
$items = array( "value1" => 30, "value2" => 70 );
$weighted = array();
foreach( $items as $value => $weight ) {
$weighted = array_merge($weighted, array_fill(0, $weight, $value));
}
echo $result = $weighted[array_rand($weighted)];
但是如果我需要在权重上使用小数怎么办? (我使用的权重总和为 100 btw)
例如:
$items = array( "value1" => 0.5, "value2" => 99.5 );
所以 value1 只会显示 0.5% 的时间。
【问题讨论】: