Avatar billede rince Nybegynder
09. november 2007 - 15:47 Der er 5 kommentarer og
1 løsning

Objekt sortering/sammenligning

Jeg har en række php objekter:
class Title {

var $title;
var $price;
...
...

hvor jeg har en sortering på "titel"

function cmp_title($a, $b){
        $al = $a->title;
        $bl = $b->title;
        if ($al == $bl) {
            return 0;
        }
        return ($al > $bl) ? +1 : -1;
}

Så jeg kan smide objekterne i et array og derefter sortere array'ets objekter efter titel.

Er det muligt at udvide denne sammenligning så objekterne først bliver sorteret efter titel og derefter efter pris.

Svarende til et sql udtryk "ORDER BY TITLE, PRICE"??
Dvs. først efter titel, og hvis der er flere objekter med samme titel så bliver de sorteret efter pris.

På forhånd tak.
Avatar billede jensgram Nybegynder
09. november 2007 - 15:51 #1
Ja, det er vel et spm om at udvide din

        if ($al == $bl) {
            return 0;
        }

til

        if ($al == $bl) {
            return $a->pris == $b->pris ? 0 : (($a->pris > $b->pris) ? 1 : -1);
        }
Avatar billede jensgram Nybegynder
09. november 2007 - 15:52 #2
Man _kunne_ naturligvis også have gjort det mere overskueligt :)
Avatar billede rince Nybegynder
09. november 2007 - 16:08 #3
Super - jeg takker. Smid et svar så får du mine point
Avatar billede jensgram Nybegynder
09. november 2007 - 17:14 #4
Tjek! God weekend.
Avatar billede jensgram Nybegynder
09. november 2007 - 17:14 #5
Satans!
Avatar billede rince Nybegynder
09. november 2007 - 17:21 #6
Tak i lige måde ;)
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