Voor een website moet ik een script maken waarin 10 verschillende soorten actiecodes staan.
Deze actiecodes moeten volgens een bepaald percentage geselecteerd worden, het liefste random.
Code 1 moet bijvoorbeeld 20 op de 100 keer geselecteerd worden.
Code 2 10 op de 100 keer.
Enz. enz.
Hoe kan ik dit het makkelijkste doen?
Ik zat zelf te denken door het laatst ingevoegde record in de database op te halen en als dit bijvoorbeeld 19 is, code 1 te geven. Maar dit is niet echt random en dus niet zo eerlijk verdeeld.
Je zoekt dus eigenlijk een rand-functie die niet zo random is... Een beetje met de natte vinger naampjes trekken? Daarvan is hier vroeger al eens een topic geweest. Zoek eens op het forum. :)
Je kan altijd eens kijken op php.net Daar bij de commentaar kan het goed zijn dat mensen zoiets al hebben gemaakt. Kijk dan ook eens bij de Engelse versie van de site.
Als je daar niets vindt kan je misschien ook eens zoeken voor in de engines van allerlei web-based php-games. Daar zal zoiets ook wel inzitten, omdat resultaten daar van een bepaalde score afhangen.
De meest eenvoudige manier die in een kleinschalig systeem wel voldoet is simpelweg het vullen van een array met de code en elke code net zo vaak voor laten komen als dat je hem wilt laten weergeven.
echo $array[0];
?>
In dit voorbeeld zal code 2 twee keer zo vaak weergegeven worden als code 1. Uiteraard kun je de array ook automatisch laten vullen met behulp van verschillende loopjes...
Super bedankt Mark en Erwin.
Dit is precies wat ik nodig heb ;)!
[size=xsmall]Toevoeging op 25/08/2010 14:45:35:[/size]
Nog even snel een vraagje:
Moet ik het random nummer perse opslaan in een variabele? Want als ik toch 100 keer een random nummer aan laat maken, moeten de verhoudingen wel kloppen toch, wat percentages betreft?