Hallo allemaal,

Een nieuw lid met een vraag waarvan ik daarom nog niet weet of die al gesteld is..
Excuus als dit wel het geval is.

Ik ben nog niet zo heel lang bezig met php en ik sla me altijd wel door elk probleem maar nu moet ik toch echt jullie hulp vragen.
Ik ben voor de lol en als oefening een ek-poule aan het maken welke je kunt invullen d.m.v. een formulier. De teams, het aantal punten, het doelsaldo en het aantal doelpunten voor worden opgeslagen in de arrays team[], p[], d[], dv[].. Dus team [0], p[0], d[0] etc. horen bij elkaar..
Ik heb het nu even over de poulefase overigens..
Nu kan je dan het aantal punten sorteren van hoog naar laag en de 1e 2 gaan door..

Maar nu komt het.. Als het aantal punten van 2 of 3 of misschien zelfs 4 teams gelijk zijn moet hij het doelsaldo vergelijken en als dat gelijk is het aantal doelpunten voor.

Nu is de vraag: Hoe doe ik dat? Ik zit al dagen te zeulen met de rsort-functie, maar dan ben je het verband [0], [0], [0] etc. kwijt..

Is er een andere manier voor, of moet ik het misschien helemaal anders doen. Voor de duidelijkheid.. Ik wil MySQL buiten deze berekening houden. Php moet zelf uitrekenen wie er naar de kwartfinales gaan.

Alvast bedankt bazen!
Kan je dan niet beter met een multidimensionale array gaan werken?
Bijvoorbeeld een array 'spelers', met keys 'team', 'p' en 'd'. Dan kan je sorteren op p en de andere waardes gaan automatisch mee.

Als voorbeeldje een array vullen met twee spelers:
<?php
$spelers = array();
$spelers[] = array('team' => 'team1', 'p' => 3, 'd' => 5);
$spelers[] = array('team' => 'team2', 'p' => 3, 'd' => 7);
?>

[size=xsmall]Toevoeging op 05/05/2012 12:06:46:[/size]

En om de volgende vraag voor te zijn: hoe sorteer je het dan :-)

Dat kan met [php]array_multisort[/php]. Omdat de manual nu niet echt heel erg duidelijk is heb ik maar meteen even een voorbeeldje gemaakt met de array van hierboven. Deze sorteert eerst op 'p' en dan op 'd' (aflopend). Verdere uitleg staat ook wel in de manual, maar als je vragen hebt kan het hier natuurlijk.

<?php
foreach ($spelers as $key => $row) {
$p[$key] = $row['p'];
$d[$key] = $row['d'];
}

array_multisort($p, SORT_DESC, $d, SORT_DESC, $spelers);
?>
Nice! It works! Ik was bang dat mensen me gingen verwijzen naar de manual idd, dat is altijd het makkelijkst: "Hoe je groot licht aan moet doen? Moet je even kijken in de autohandleiding onder het kopje verlichting, aju!"..

Bedankt, je bent een eindbaas!

Reageren