Avatar billede compac Seniormester
11. januar 2011 - 16:52 Der er 4 kommentarer og
1 løsning

Sortering af array

Jeg har et array jeg skal have sorteret:

Det ser således ud:

$resultarr[] = array("fradato"=>$fradato,
                  "beskrivelse"=>$beskrivelse);

Det skal sorteres på fradato i stigende orden.
Kun kolonnen "beskrivelse" skal udskrives.

Hvordan klarer jeg den?
Avatar billede repox Seniormester
11. januar 2011 - 17:01 #1
Det kan du gøre med http://php.net/usort

Men er det er resultat fra databasen er det nemmere at sortere fra den
Avatar billede compac Seniormester
11. januar 2011 - 17:37 #2
Det ser ud til der er mange muligheder.
Vil du give et eksempel?
Avatar billede intenz Novice
11. januar 2011 - 18:32 #3
Hvis din 'fradato' er et timstamp, kan du gøre sådan:

function usortDate($a, $b) {
    if ($a['fradato'] == $b['fradato']) {
        return 0;
    }
    return ($a['fradato'] < $b['fradato']) ? -1 : 1;
}

usort($resultarr, "usortDate");

foreach($resultarr as $result) {
  print $result['beskrivelse']."<br />";
}
Avatar billede compac Seniormester
11. januar 2011 - 21:14 #4
Formatet på fradato er date.
Kan du fortælle mig hvordan jeg så skal gøre (uden at forandre formatet)?
Avatar billede intenz Novice
12. januar 2011 - 00:38 #5
Med date, går jeg ud fra du mener et mysql DATE felt?

Du kan så bruge strtotime, for at lave det om til et timestamp, og så sammenligne dem. Det vil være det nemmeste.

Prøv denne funktion i stedet:

function usortDate($a, $b) {
    $a = strtotime($a['fradato']);
    $b = strtotime($b['fradato']);

    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}


Hvis du med 'date' mener noget du selv har strikket sammen med php's date funktion, kan du lave et timestmap med mktime (i stedet for de strtotime jeg skrev), tjek manualen:
http://dk2.php.net/manual/en/function.mktime.php
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