array multisort op date
Ik heb een array gegenereerd uit een databaseoutput;
Code (php)
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
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
while ($rowbsu = odbc_fetch_array($rsbsua)) {
// db velden in variabelen stoppen
$debnr = $rowbsu['debnr'];
$datumebi = $rowbsu['datumebi'];
$laatstepi = $rowbsu['laatstepi'];
$volgendepi = $rowbsu['volgendepi'];
$laatstepo = $rowbsu['laatstepo'];
$volgendepo = $rowbsu['volgendepo'];
$laatstebeesb = $rowbsu['laatstbeesb'];
$volgendebeesb = $rowbsu['volgendbeesb'];
// stop de waarden in de debiteur-array
$debiteur[$debnr][0] = $debnr;
$debiteur[$debnr][1] = $datumebi;
$debiteur[$debnr][2] = $laatstepi;
$debiteur[$debnr][3] = $volgendepi;
$debiteur[$debnr][4] = $laatstepo;
$debiteur[$debnr][5] = $volgendepo;
$debiteur[$debnr][6] = $laatstebeesb;
$debiteur[$debnr][7] = $volgendebeesb;
$debiteur[$debnr][8] = $contractmnd;
}
?>
while ($rowbsu = odbc_fetch_array($rsbsua)) {
// db velden in variabelen stoppen
$debnr = $rowbsu['debnr'];
$datumebi = $rowbsu['datumebi'];
$laatstepi = $rowbsu['laatstepi'];
$volgendepi = $rowbsu['volgendepi'];
$laatstepo = $rowbsu['laatstepo'];
$volgendepo = $rowbsu['volgendepo'];
$laatstebeesb = $rowbsu['laatstbeesb'];
$volgendebeesb = $rowbsu['volgendbeesb'];
// stop de waarden in de debiteur-array
$debiteur[$debnr][0] = $debnr;
$debiteur[$debnr][1] = $datumebi;
$debiteur[$debnr][2] = $laatstepi;
$debiteur[$debnr][3] = $volgendepi;
$debiteur[$debnr][4] = $laatstepo;
$debiteur[$debnr][5] = $volgendepo;
$debiteur[$debnr][6] = $laatstebeesb;
$debiteur[$debnr][7] = $volgendebeesb;
$debiteur[$debnr][8] = $contractmnd;
}
?>
Nu wil ik deze array sorteren op de 6 waarde in de array, waarbij het debiteurnr geen rol speelt. Laat ik zeggen dat ik de array dus wil sorteren op $debiteur[%debnr%][5].
Hoe kan ik dit nu doen? Ik kom totaal niet uit de uitleg welke is gegeven op PHP.net. Ik heb het wel al zo geprobeerd;
Code (php)
1
2
3
4
5
2
3
4
5
<?php
foreach ($debiteur as $waarde=>$key) {
array_multisort($debiteur[$waarde][5],SORT_DATE);
}
?>
foreach ($debiteur as $waarde=>$key) {
array_multisort($debiteur[$waarde][5],SORT_DATE);
}
?>
Wie kan mij helpen?
Waarom schik je niet gewoon in je query?
Dit is zo omdat uit 3 verschillende administraties van ons ERP-systeem gegevens gehaald moeten worden. Sorry dat ik dit niet eerder had gemeld, dat had het een stuk duidelijker gemaakt.
Nu weet ik dat gegevens gesorteerd kunnen worden door middel van array_multisort, maar ik kom hier niet uit! :)
Wie kan mij helpen
Oplossing bij het sorteren op $debnr;
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
// definieren arraysleutel
$veldnr = 0;
// de waarden onder de sleutel in een array zetten
foreach ($debiteur as $key=>$waarde) {
$sort[$key] = $debiteur[$key][$veldnr];
}
// sorteren van waarden in de reeds gevulde array
array_multisort($sort,SORT_DESC,SORT_STRING,$debiteur);
?>
// definieren arraysleutel
$veldnr = 0;
// de waarden onder de sleutel in een array zetten
foreach ($debiteur as $key=>$waarde) {
$sort[$key] = $debiteur[$key][$veldnr];
}
// sorteren van waarden in de reeds gevulde array
array_multisort($sort,SORT_DESC,SORT_STRING,$debiteur);
?>