Om een multidimensionaal array te sorteren op een bepaalde kolom kun je het beste uasort($array, "function") gebruiken. Deze werkt goed en ik krijg inderdaad netjes een gesorteerd array terug op de geselecteerde kolomnaam. De code die ik hiervoor gebruik is deze:
Prachtig, dat werkt. Wat is echter wil bereiken is dat ik het bovenstaande geheel in een aparte functie dump, waaraan ik als argumenten een array en een kolomnaam meegeef. En zoals je zult begrijpen moet het array dan gesorteerd worden op die kolom. Het wil me maar niet lukken, waarschijnlijk gaat het mis met die globale waarde, maar ik zie niet waar ik die anders kwijt moet... met deze code werkt het dus helaas niet:
PHP:
1
2
3
4
5
6
7
| function cmp($a, $b) { global $kolom; return strcmp(strtolower($a[$kolom]), strtolower($b[$kolom])); } $kolom = 'name'; uasort($devices, "cmp"); |
Prachtig, dat werkt. Wat is echter wil bereiken is dat ik het bovenstaande geheel in een aparte functie dump, waaraan ik als argumenten een array en een kolomnaam meegeef. En zoals je zult begrijpen moet het array dan gesorteerd worden op die kolom. Het wil me maar niet lukken, waarschijnlijk gaat het mis met die globale waarde, maar ik zie niet waar ik die anders kwijt moet... met deze code werkt het dus helaas niet:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
| function multisort($array, $column) { function cmp($a, $b) { global $kolom; return strcmp(strtolower($a[$kolom]), strtolower($b[$kolom])); } $kolom = $column; uasort($array, "cmp"); return $array; } $array = multisort($array, 'name'); |
Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.