Hallo Liebes php.de Forum,
wünsche euch erst mal eine Frohes neues Jahr.
Die funktion hat eine liste mit items und ihrer generations chance, und erstellt eine 2 liste die mit den items so oft gefüllt wird wie ihre chance ist.
Nun wird mittels mt_rand eine zahl zwischen 0 und 100 generiert und mit dieser zahl wird dann das item aus der liste gewählt.
Die funktion:
Zum beispiel:
$items["muni"] = 67;
hat eine 67% chance Generiert zu werden.
$items2 enthält also 67 mal die value "muni" und 33 andere einträge.
durch shuffle($items2) werden die einträge von $items2 per zufall angeordnet und durch $items2[$x] zurückgegeben.
Beträgt die warscheinlichkeit das randItem() wirklich "muni" zurück gibt 67% und gibt es einen einfachen weg, weil das mit den 2 listen erscheint mir einwenig aufwendig, bzw. einen weg der Performanter ist.
Mit freundlichen Grüßen Jack
wünsche euch erst mal eine Frohes neues Jahr.
Die funktion hat eine liste mit items und ihrer generations chance, und erstellt eine 2 liste die mit den items so oft gefüllt wird wie ihre chance ist.
Nun wird mittels mt_rand eine zahl zwischen 0 und 100 generiert und mit dieser zahl wird dann das item aus der liste gewählt.
Die funktion:
PHP-Code:
function randItem()
{
$items = [];
$items["muni"] = 67;
$items["reso"] = 12;
$items["regu"] = 3;
$items["gapa"] = 13;
$items["nahp"] = 3;
$items["lofi"] = 1;
$items2 = [];
foreach($items as $key => $value)
{
for($i = 0; $i<$value; $i++) { $items2[] = $key; }
}
shuffle($items2);
$x = mt_rand(0, 100);
return $items2[$x];
}
$items["muni"] = 67;
hat eine 67% chance Generiert zu werden.
$items2 enthält also 67 mal die value "muni" und 33 andere einträge.
durch shuffle($items2) werden die einträge von $items2 per zufall angeordnet und durch $items2[$x] zurückgegeben.
Beträgt die warscheinlichkeit das randItem() wirklich "muni" zurück gibt 67% und gibt es einen einfachen weg, weil das mit den 2 listen erscheint mir einwenig aufwendig, bzw. einen weg der Performanter ist.
Mit freundlichen Grüßen Jack

Kommentar