dabear Skrevet 6. oktober 2005 Skrevet 6. oktober 2005 Jeg har dette arrayet: <?php Array ( [00090] => Array ( [teamName] => 00090 [matches] => 2 [goalsScored] => 6 [goalsScoredAgainst] => 7 [ties] => 0 [points] => 3 [victories] => 1 [looses] => 1 ) [00212] => Array ( [teamName] => 00212 [matches] => 1 [goalsScored] => 6 [goalsScoredAgainst] => 3 [ties] => 0 [points] => 3 [victories] => 1 [looses] => 0 ) (...) ) Noen som kan veilede meg i hvordan jeg sorterer [00090], [00212] .. først etter poeng, og deretter målforskjell (plussmål - minusmål)? Dersom du ønsker å se dataene som arrayet ligger i, kan du ta <?php $teamInfo = unserialize(file_get_contents('newTableSerialized.txt')); print_r($teamInfo); ?> Hvor da «newTableSerialized.txt» er lagt ved nedafor: newTableSerialized.txt
stiber Skrevet 6. oktober 2005 Skrevet 6. oktober 2005 (endret) foreach ($teamInfo as $key => $row) { $points[$key] = $row['points']; $goalDiff[$key] = $row['goalsScored'] - $row['goalsScoredAgainst']; } array_multisort($points, SORT_DESC, $goalDiff, SORT_DESC, $teamInfo); Slå opp array_multisort for mer info. Edit: Alternativt: usort($teamInfo,'teamSort'); function teamSort($row1,$row2) { $first = strcmp($row2['points'],$row1['points']); if ( $first ) return $first; else return strcmp(($row2['goalsScored'] - $row2['goalsScoredAgainst']),($row1['goalsScored']-$row1['goalsScoredAgainst'])); } Har ikke testet hvilken av de to metodene som er raskest, men jeg vil tro det er den siste. Endret 6. oktober 2005 av stiber
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå