根据给定的百分比在两个项目之间进行选择

时间:2012-06-21 13:53:35

标签: php arrays random percentage

我需要根据40/60%的比例显示数组中的两个项目之一。因此,40%的时间,第一项显示,60%的时间,第二项显示。

我现在有以下代码,它们只是在两者之间随机选择,但需要一种方法来为它添加百分比权重。

$items = array("item1","item2");
$result = array_rand($items, 1);

echo $items[$result];

任何帮助将不胜感激。谢谢!

6 个答案:

答案 0 :(得分:9)

这样的事情应该可以解决问题

$result = $items[ rand(1, 100) > 40 ? 1 : 0 ];

答案 1 :(得分:4)

$val = rand(1,100);
if($val <= 40)
  return $items[0]; 
else 
  return $items[1];

答案 2 :(得分:3)

只需使用普通rand方法:

if (rand(1,10) <= 4) {
    $result = $items[0];
} else {
    $result = $items[1];
}

答案 3 :(得分:3)

if(rand(0, 100) <= 40) {
    # Item one
} else {
    # Item two
}

答案 4 :(得分:1)

怎么样?

$rand = mt_rand(1, 10);
echo (($rand > 4) ? 'item2' : 'item1');

答案 5 :(得分:0)

$index = rand(1,10) <= 4 ? 0 : 1;
echo $items[$index];