Tweedimensionale Array Sorteren

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • ewoutw
  • Registratie: Oktober 2013
  • Laatst online: 27-09 18:38
Ik ben bezig met een tooltje om sportuitslagen om te zetten in standen (en er nog veel meer statistiek uit te halen). Nu heb ik per team alle gegevens (gespeelde wedstijden, gewonnen, gelijk, verloren, doelpunten voor en tegen en punten (in mindering). Deze gegevens heb ik een een array gestopt. nu wil ik eigenlijk de array standen sorteren op basis van de $pt (punten) en als het even kan als punten gelijk zijn op de volgende waarde.

De array die ik gebruik (zit in een lus waar de database gegevens opgehaalt en verwerkt worden.
PHP:
1
$standen[] = array("team"=>$team, "gs"=>$gs, "gw"=>$gw, "gl"=>$gl, "vl"=>$vl, "v"=>$v, "t"=>$t, "pt"=>$pt, "pim"=>$pim);



Nu dacht ik op internet met array_multisort() de oplossing te hebben. Maar wat ik ook doe, hij sorteert alleen op naam van het team.

De sorteer code
PHP:
1
array_multisort($pnt, SORT_ASC, $gww, SORT_ASC, $standen);


Weet iemand of ik iets fout doe?, zou ik eigenlijk een andere functie moeten gebruiken of mijn data op een andere manier ordenen. Ik weet zeker dat hier al een keer iemand over na heeft gedacht en een oplossing voor mij heeft die ik zelf blijkbaar niet kan bedenken.

Ohja ik gebruik PHP.

Alvast bedankt.

Beste antwoord (via ewoutw op 06-07-2017 21:34)


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Je wil eigenlijk gewoon een 1-dimensionale array sorteren, alleen wil je op meerdere velden vergelijken. Dat kan je gewoon implementeren in je compare functie die je aan de sort mee kan geven:

http://php.net/manual/en/function.usort.php

in de compare functie kijk je gewoon eerst naar het eerste veld, als die gelijk zijn naar het tweede veld etc.

[ Voor 7% gewijzigd door Woy op 05-07-2017 10:15 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”

Alle reacties


Acties:
  • +1 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

array_multisort() can be used to sort several arrays at once, or a multi-dimensional array by one or more dimensions.
Ik weet niet wat je precies denkt mee te geven aan die functie maar dit gaat niet doen wat je wil, nee. :P

Kijk eens naar usort.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • vickypollard
  • Registratie: Juni 2009
  • Laatst online: 10:45
Waar zit eigenlijk het tweedimensionale aspect van je array?

Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Je wil eigenlijk gewoon een 1-dimensionale array sorteren, alleen wil je op meerdere velden vergelijken. Dat kan je gewoon implementeren in je compare functie die je aan de sort mee kan geven:

http://php.net/manual/en/function.usort.php

in de compare functie kijk je gewoon eerst naar het eerste veld, als die gelijk zijn naar het tweede veld etc.

[ Voor 7% gewijzigd door Woy op 05-07-2017 10:15 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”