Dvs. du skal fordele n personer på m antal hold - jeg går udfra fordelingen skal være ligelig (dvs. 12 personer SKAL fordeles som 6,6 og ikke 5,7)?
Det lyder faktisk som en sjov opgave...
Ja... Men hvis der kun er 5 personer skal der bare være 3 på hold ét og 2 på hold to... Tror du at du kan fortælle mig hvordan jeg gør?
Som du kan se så har jeg lavet: "if ($action == "bland") {
}"... Du skal bare hjælpe mig hvordan jeg laver udregningerne!
Jeg tror jeg har en smart løsning - øjeblik!
Hvilke informationer gemmer du om folk? Har du eks. deres navn i et array - og så kan man tilføje et holdnummer til den person?
Som du kan se i den kode jeg skrev så kommer personens navn til at stå i navn[$tal]... Hvor $tal er nr. på navnet...
Håber du kan hjælpe! Har nemlig ikke en anelse til hvordan man griber det an...
Du kan både have et vilkårligt antal hold og et vilkårligt antal personer?
Her er et udkast:
// Denne del er udelukkende for at få lavet et personarray
$person = array();
array_push($person, "tipsen");
array_push($person, "dennism");
array_push($person, "invisibleman");
array_push($person, "ericjacobsen");
array_push($person, "mortenfn");
array_push($person, "retaxes");
array_push($person, "bounce2002");
array_push($person, "beldring");
array_push($person, "gizmo-gizmo");
array_push($person, "krazmulu");
//Her starter den nødvendige kode:
//Tæller antal personer
$antalpersoner = count($person);
//Definerer antal hold
$antalhold = 4;
//Laver en vilkårlig rækkefølge af personerne
srand ((float)microtime()*1000000);
shuffle($person);
// starter med hold 1 og tildeler personerne holdnr i forhold til
// den rækkefølge de har fået i array'et - Der bliver også taget
// højde for skæve holdfordelinger!
$holdnr = 1;
$antalprhold = $antalpersoner / $antalhold;
for ($i=0;$i<$antalpersoner;$i++) {
if ($i+1 > $holdnr*$antalprhold) {
$holdnr++;
}
echo $person[$i] . " - hold $holdnr<br>";
}
-kan du få det til at fungere?
Tusind tak...
Gider du lige forklare hvordan denne sætninger fungere (og hvad deres fungtion er):
srand ((float)microtime()*1000000);
Og... Hvad er det nu man bruger en 'for'-løkke til?
srand() giver et (nogenlunde) tilfældigt frø til randomize funktionen, således at du kan være sikker på at få fornuftigt tilfældige resultater hver gang!
http://www.php.net/ (...)for-løkken looper over alle elementerne i person-array'et - så bliver de allesammen skrevet ud og får tildelt et hold!
Hvad er forskellen på for og while?
for bruger du generelt til at loope et bestemt antal gange, mens du bruger while til at loope indtil en bestemt betingelse er opfyldt - i praksis kan de dog ofte afløse hinanden!