Bakgrund: Arrayen är hämtad från en orienteringstävlingtävling där tiden för varje stämpling lagras. ['Andersson, Björn'][11][0] är alltså tiden löparen stämplade vid kontroll 11 och ['Andersson, Björn'][11][1] är tid efter ledaren vid den aktuella kontrollen.
Uppgift: Jag vill nu sortera arrayen kronologiskt och skriva ut en resultatlista. Arrayen ska sorteras på värdena som finns i ['löparnamn'][999][0] (eller [1]). I exemplet ska alltså 'Sindballe, Torbjörn' komma först, följt av 'Andersson, Björn' och sist 'Willén, Joachim'. Frågan är hur jag ska göra detta?
[999][1] är tid efter ledaren (dvs. personen som var snabbast får tiden 00:00:00.0 och löparna bakom får ett tal som är högre än det). Men det spelar ingen roll, man skulle kunna sortera på båda (den som har kortast tid i [999][0] är ju onekligen snabbast) och din kod ovan ger ett korrekt resultat. Men vad gör den här raden egentligen?
return $a < $b ? -1 : 1;
?
Följdfråga: En del löpare fullföljer av en eller annan anledning inte tävlingen, och kommer därför inte ha någon [999]. Hur gör man för att de som saknar detta index ska placeras sist i arrayen efter sorteringen?
Hur du löser det andra hänger lite ihop med hur du hanterar det från början, men du kan alltid göra så att du loopar igenom arrayen och plockar ut de som inte fullföljt.
Sen om du vill sortera dessa efter namn eller mellantid blir sedan upp till dig.