Avatar billede lubker Nybegynder
23. august 2008 - 20:30 Der er 3 kommentarer og
1 løsning

Sortering af to-dimmensionelt array

Hej.
Jeg har et 2-dimmensionelt array, som jeg gerne vil have sorteret på baggrund af deres "nøgle".

arrayet er opbygget således, hvor variablen $i er id nummeret for rækken.
$medlemsdata[$i]['fornavn']
$medlemsdata[$i]['efternavn']
$medlemsdata[$i]['adresse']
$medlemsdata[$i]['postnr']
$medlemsdata[$i]['tlf']

Spørgsmålet er nu hvordan man kan sortere arrayet efter fornavn eller efternavn osv...

Har på fornemelsen jeg skal bruge array_multisort, men er ikke sikker på hvordan den skal benyttes i denne situation. Umiddelbart ville jeg gerne have en generel funktion der kan benyttes uanset key-navne, bare man kender den der skal sorteres efter.

Kan dette lade sig gøre?
Avatar billede erikjacobsen Ekspert
23. august 2008 - 20:51 #1
Du definerer din egen sorteringsfunktion. Denne sorterer efter fornavn. Skitse:

$medlemsdata[0]['fornavn']="aaaa";
$medlemsdata[0]['efternavn']="bbbb";

$medlemsdata[1]['fornavn']="zzzz";
$medlemsdata[1]['efternavn']="qqqq";

$medlemsdata[2]['fornavn']="dddd";
$medlemsdata[2]['efternavn']="eeeee";


foreach ($medlemsdata as $m) {
  print $m['fornavn']." ".$m['efternavn']."<br>";
}

function sort1($a,$b) {
  if ($a['fornavn']>$b['fornavn']) {
    return 1;
  }
  else if ($a['fornavn']<$b['fornavn']) {
    return -1;
    } else {
    return 0;
    }
}

usort($medlemsdata,"sort1");

print "-----------<br>";
foreach ($medlemsdata as $m) {
  print $m['fornavn']." ".$m['efternavn']."<br>";
}
Avatar billede lubker Nybegynder
23. august 2008 - 20:55 #2
Tak for hjælpen.
Fandt denne http://www.eksperten.dk/spm/635664, der klarer kravene og samtidig er dynamisk så jeg ikke skal tilpasse den ved ændrede key navne.

Jeg har ikke prøvet din løsning af, men du skal selvfølgelig have point for at bruge tid på mig.
Lægger du et svar?
Avatar billede erikjacobsen Ekspert
23. august 2008 - 21:16 #3
Ja, det er bare en anden måde at lave sammenligningsfunktionerne på.
Jeg samler slet ikke på point, tak. Du svarer selv, og accepterer dit eget svar.
Avatar billede lubker Nybegynder
23. august 2008 - 21:23 #4
Jam så siger jeg tak for hjælpen.
Ha en god aften.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester