Een reeks records die als regels/rijen worden gepresenteerd.
Een tabel dus, niet te verwarren met een MySql table.
Nu vind ik een hoop array functies en array sorteerfuncties.
Maar die mijn tabel kan sorteren op een aangegeven kolom vind ik niet.
Ik kan me niet voorstellen dat die functie niet al bestaat in PHP.
Kent iemand die?
Voorlopig heb ik het als volgt opgelost.
1. voeg voor elk record/array/rij het aangewezen veld vooraan in.
2. sorteer (Gelukkig sorteert sort ook een array van arrays)
3. verwijder het voorste veld weer.
function sortArrayTabel($aIn, $kolNr = 0) {
foreach ($aIn as $aRegel) {
$aTmp = array();
$aTmp[] = $aRegel[$kolNr];
$aRegel = array_merge($aTmp, $aRegel);
$aUit[] = $aRegel;
}
$aIn = $aUit;
sort($aIn);
$aUit = array();
foreach ($aIn as $aRegel) {
$tmp = array_shift($aRegel);
$aUit[] = $aRegel;
}
return $aUit;
}
Nogal omslachtig, als zeg ik het zelf...
De aanroep is eenvoudiger
$aS[] = array('5', '2', '6', '1');
$aS[] = array('3', '4', '1', '2');
$aS[] = array('8', '1', '5', '3');
$kolomNummer=1; // vanaf 0
printArrayTabel($aS);
$aR=sortArrayTabel($aS, $kolomNummer);
printArrayTabel($aR);
De uitvoer ter referentie
5 2 6 1
3 4 1 2
8 1 5 3
8 1 5 3
5 2 6 1
3 4 1 2
De vraag is dus: kan dit niet met één PHP functie?