September 2009
Intermediate to advanced
912 pages
48h 11m
German
Sie möchten Zufallszahlen generieren, wobei diese Zahlen aber ungleichmäßig verteilt sein sollen, sodass Zahlen in bestimmten Bereichen häufiger auftauchen als andere. Beispielsweise möchten Sie eine Reihe von Werbebanner-Einblendungen verteilen, die proportional zur Anzahl der für jede Werbekampagne noch übrigen Einblendungen ist.
Verwenden Sie die Funktion pc_rand_weighted(), die Listing 2.1 zeigt.
// Gibt den gewichtet-zufällig ausgewählten Schlüssel zurück function pc_rand_weighted($numbers) { $total = 0; foreach ($numbers as $number => $weight) { $total += $weight; $distribution[$number] = $total; } $rand = mt_rand(0, $total - 1); foreach ($distribution as $number => $weights) { if ($rand ...