Avatar billede martin1000ben Nybegynder
12. juli 2006 - 02:27 Der er 3 kommentarer og
1 løsning

Sorteringsproblem med multidim. array

Hej

Jeg har et lille sorterings problem.

Mit array ser således ud: (alt unødvendigt fjernet)

$array[i]["info"]["name"] // navn
$array[i]["info"]["created"] // Oprettet (kan laves om til UNIX TIME uden problemer)
$array[i]["price"]["normal"]["low"] // laveste pris
$array[i]["campaign"]array // Tilbud først

(i = nummer i arrayet)
Eks.
$array[2][name] = Faxe Kondi 6
$array[2][price][normal][low]=30.00
$array[2][price][normal][low][created]=2006-07-06 20:18:41
$array[2][campaign]=array

Sorteringen skal foregå enten via (brugervalgt):
Alfabetisk (navn) A-Å
nyeste (oprettet)
laveste pris
tilbud først

Der må meget gerne være 1 funktion for hver, da der nogle steder skal bruges 2 funktioner til hver.

Bemærk, ved tilbud først, der skal den bare finde ud af om det er et array, for hvis det er det, så er der tilbud på den vare.
Avatar billede jakobdo Ekspert
12. juli 2006 - 08:34 #1
Måske noget i denne stil:

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

usort($ditArray, 'cmpName');

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

usort($ditArray, 'cmpCreated');
Avatar billede martin1000ben Nybegynder
13. juli 2006 - 19:34 #2
Med et par små ændringer har jeg fået det til at virke helt perfekt :)
Tak for det.
Smid et svar :)
Avatar billede jakobdo Ekspert
13. juli 2006 - 19:44 #3
Svar!
Avatar billede jakobdo Ekspert
17. juli 2006 - 07:44 #4
Takker for point.
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