Mailinglisten-Archive |
>wie kann es ralisiert werden das man ein verhältnis setzen kann zb >banner1=10 banner2=5 banner3=3 mal anzeigen ? >hat dazu einer ne idee ? Ich hab' das mal so realisiert... $sum=0; $haeufigkeit=array(10,5,3); for($i=0;$i<count($haeufigkeit);$i++) $bounds[$i]=$sum; $sum+=$haeufigkeit[$i]; } ... $zufall=rand(0,$sum); $i=-1; while($bounds[++$i]<$zufall); $i ist dann die Nummer des Banners. Wenn's nicht viele Banner oder krumme Verhältnisse der Wahrscheinlichkeiten sind (z.B. 57827:36463:389423 ;-) ), dann kannst du natürlich auch hingehen und das folgendemaßen machen: $haeufigkeit=array(10,5,3); $sum=0; for($i=0;$i<count($haeufigkeit);$i++) { $sum+=$haeufigkeit[$i]; for($j=0;$j<$haeufigkeit[$i];$j++) $foo[]=$i; } ... $zufall=rand(0,$sum); $i=$foo[$zufall]; $i enthält dann wieder die Bannernummer. Alles, wie hier ja üblich, nicht getestet! ;-) Vielleicht läuft's ja dennoch. Chris
php::bar PHP Wiki - Listenarchive