login  Naam:   Wachtwoord: 
Registreer je!
 Forum

sorteren van 2 kolommen (Opgelost)

Offline Metalhead - 27/11/2007 22:19 (laatste wijziging 28/11/2007 08:50)
Avatar van MetalheadHTML gevorderde Hoe kun je sorteren op 2 kolommen?

Bijv;
[naam, waarde]
alfa, 6
beta, 3
gamma, 6
delta, 1

Zou ik willen sorteren tot ik dit krijg;
delta, 1
beta, 3
alfa, 6
gamma, 6

De naam komt uit de database, de waarde wordt berekend.
Op dit moment heb ik de namen en de waardes in twee losse array's staan, maar als ik de 2e array ga sorteren krijg ik de 1e nooit meer in de goede volgorde (omdat de 2e dus gelijke waarden kan bevatten)...

2 antwoorden

Gesponsorde links
Offline Stijn - 27/11/2007 22:22
Avatar van Stijn PHP expert Het zou handig zijn dat je de waarde in je query zou kunnen berekenen want dan kan je ORDER BY naam,waarde DESC doen.

Trouwens klopt je laatste sortering niet. Je sorteert eerst op naam en dan op waarde dus zou je gesorteerde lijst als volgt moeten zien:

delta, 1
beta, 3
gamma, 6
alfa, 6
Offline Metalhead - 27/11/2007 22:26 (laatste wijziging 28/11/2007 08:51)
Avatar van Metalhead HTML gevorderde Maar de waardes worden dus berekend, dus komen niet uit de database.... (en alfa komt toch voor gamma?)
(en ik wil dus eerst sorteren op waarde, daarna op naam)

Hmm, ik dacht het op deze manier op te kunnen lossen;
  1. for ... {
  2. $sortable[$naam] = $value;
  3. }
  4. sort($sortable);
  5. $sortedNames = array_keys($sortable);


Maar nu blijkt dat die sort de keys om een of andere reden reset!
(Zonder sort werkt het goed, met sort zijn alle keys weer 0, 1, 2 ...)

---

Zoals iemand mij gister in de chat vertelde; 3D arrays kunnen ook gesorteerd worden...
Het duurde even voordat het me eindelijk lukte, maar het is me toch gelukt 

  1. for ($i... {
  2. $both[$i][0] = $value;
  3. $both[$i][1] = $name;
  4. }
  5. sort($both)
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.179s