Multiple sort in een array

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Wout van der Burg

Wout van der Burg

11/11/2010 15:33:17
Quote Anchor link
Hallo,

Ik probeer een array te sorteren op meerdere dimensies, alleen lukt het niet.
De output is nl. niet gesorteerd zoals ik het wil hebben.
Kan iemand mij hierbij helpen?

Ik probeer te sorteren, zoals je dit met SQL zo zou doen;

"ORDER BY column1, column2, column3, column4"

Dit is mijn script;

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
$p
=0;
$icg=Array();
for($i=0;$i<20;$i++) {
    $icg[$p]['maand'] = $somevalue; // [A-Za-z] value
    $icg[$p]['productgrp'] = $somevalue; // [A-Za-z] value
    $icg[$p]['land'] = $somevalue; // [A-Za-z] value
    $icg[$p]['week'] = $somevalue; // [1-52] value
    $p++;
}

$column=Array();
$column2=Array();
$column3=Array();
$column4=Array();    
if (!empty($icg)) {
    foreach($icg as $sortarray) {
        $column[] = $sortarray['maand'];
        $column2[] = $sortarray['productgrp'];
        $column3[] = $sortarray['land'];
        $column4[] = $sortarray['week'];
    }

    array_multisort($column, SORT_DESC, $icg);
    array_multisort($column2, SORT_DESC, $icg);
    array_multisort($column3, SORT_DESC, $icg);
    array_multisort($column4, SORT_DESC, $icg);
}

?>
 
PHP hulp

PHP hulp

21/11/2024 19:01:32
 
Pim -

Pim -

11/11/2010 17:37:15
Quote Anchor link
gebruik usort() of uasort()
 
Wout van der Burg

Wout van der Burg

11/11/2010 20:06:39
Quote Anchor link
Ok. Tnx voor je reactie!
Maar ik begrijp dat er met u(a)sort(); een functie gehangen kan worden zodat de array aan de hand hiervan behandeld wordt?

Dan moet ik even na gaan denken wat die functie precies moet gaan doen :)
Ik kom er op terug

Als er verder ideeen zijn hoor ik ze natuurlijk graag!
 
Noppes Homeland

Noppes Homeland

11/11/2010 20:33:53
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
array_multisort($column, SORT_DESC,$column2, SORT_DESC,$column3, SORT_DESC, $column4, SORT_DESC,$icg);
?>


Bovenstaande had je gewoon van php.net kunnen afplukken

Note: geef je arrays een duidelijke naam, dat vereenvoudig het begrip van het script
Gewijzigd op 11/11/2010 20:48:07 door Noppes Homeland
 
Wout van der Burg

Wout van der Burg

12/11/2010 08:14:36
Quote Anchor link
Bedankt! hij doet het

Van php.net had ik het niet op deze manier begrepen... Weer wat geleerd!
 
Noppes Homeland

Noppes Homeland

12/11/2010 18:27:49
Quote Anchor link
Oke, dan toch maar een duidelijke verwijzing:
http://www.php.net/array_multisort
Example #3 Sorting database results

Nou is het natuurlijk een beetje een krompte example titel, maarj a daar kan ik dan ook niets aan doen, zodra je SQL kunt gebruiken sorteer je uiteraard met de ORDER BY clause.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.