Вроде, что то получилось. Хотя и стиль не очень нравится)
Invis1ble можешь посмотреть. Ну естественно остальные тоже.
Какие рекомендации к такому коду?
<?php
$probability = array (
'event1' => .25,
'event2' => .5,
'event3' => .1,
'event4' => .1,
'event5' => .05
);
$result = getProbability ($probability);
function getProbability ($prob) {
$next_item = 0;
$i = 1;
$rand = rand(1,100);
foreach ($prob as $k=>$item) {
$next_item = $next_item + ($item*100);
if ($i==1) {
$first_item = $item*100;
if ($item*100>=$rand) {
$result = $k;
}
} elseif ($i==2) {
if ($first_item<=$rand && $rand<=$next_item) {
$result = $k;
}
$old_next_item = $next_item;
} else {
if ($old_next_item<=$rand && $rand<=$next_item) {
$result = $k;
}
$old_next_item = $next_item;
}
$i++;
}
return $result;
}
print $result;