4

40/60% の比率に基づいて配列内の 2 つのアイテムのいずれかを表示する必要があります。したがって、40% の確率で項目 1 が表示され、60% の確率で項目 2 が表示されます。

これで、2 つからランダムに選択する次のコードができましたが、パーセンテージの重みを追加する方法が必要です。

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

echo $items[$result];

どんな助けでも大歓迎です。ありがとう!

4

6 に答える 6

8

そのような何かがうまくいくはずです

$result = $items[ rand(1, 100) > 40 ? 1 : 0 ];
于 2012-06-21T13:58:13.177 に答える
4
$val = rand(1,100);
if($val <= 40)
  return $items[0]; 
else 
  return $items[1];
于 2012-06-21T13:58:03.357 に答える
3

通常のrand方法を使用してください:

if (rand(1,10) <= 4) {
    $result = $items[0];
} else {
    $result = $items[1];
}
于 2012-06-21T13:58:06.513 に答える
3
if(rand(0, 100) <= 40) {
    # Item one
} else {
    # Item two
}
于 2012-06-21T13:58:44.370 に答える
1

どうですか?

$rand = mt_rand(1, 10);
echo (($rand > 4) ? 'item2' : 'item1');
于 2012-06-21T14:01:47.427 に答える
0
$index = rand(1,10) <= 4 ? 0 : 1;
echo $items[$index];
于 2012-06-21T13:59:02.537 に答える