Ik heb een array met waardes die zowel kleine letters, als hoofdletters, als ook nummers en andere tekens bevat.
Deze array zou ik natural willen sorteren zonder dat er naar de case wordt gekeken. Tevens moeten alle waardes een nieuwe key krijgen, in de volgorde zoals er gesorteerd is.
natcasesort doet dit, behalve dat de keys bewaard blijven (wat dus niet de bedoeling is)
Het doorbladeren van de PHP handleiding (ik gebruik PHP 4) heeft me niet veel meer informatie kunnen verschaffen. Hier is een oud topic te vinden waar dezelfde vraag gesteld werd. Er werd echter weinig respons op gegeven en het scriptje wat er staat is me nogal onduidelijk.
Er wordt 'usort' genoemd. In de PHP handleiding staat een voorbeeld binnen een function, iets wat ik nog nooit begrepen heb. Verder staat er bijster weinig uitleg over usort in de handleiding.
Het volgende script wordt genoemd:
Hier ontgaat me de werking ook van. Waarom wordt er een nieuw array "$nieuw" aangemaakt? Deze wordt verder niet meer gebruikt. Of moet het "$nieuwe" zijn, zoals verder weer terug komt?
Tot en met de foreach regel kom ik helemaal mee. Maar daarna wordt $naam opgeslagen in $nieuwe. Wat heb je dan bereikt?
Bovendien krijg ik een "Warning: Invalid argument supplied for foreach()" bij dit script.
Wellicht is het beter om dit script helemaal te vergeten.
Een handige oplossing (of gewoon een functie?) kom ik niet echt op.
Deze array zou ik natural willen sorteren zonder dat er naar de case wordt gekeken. Tevens moeten alle waardes een nieuwe key krijgen, in de volgorde zoals er gesorteerd is.
natcasesort doet dit, behalve dat de keys bewaard blijven (wat dus niet de bedoeling is)
Het doorbladeren van de PHP handleiding (ik gebruik PHP 4) heeft me niet veel meer informatie kunnen verschaffen. Hier is een oud topic te vinden waar dezelfde vraag gesteld werd. Er werd echter weinig respons op gegeven en het scriptje wat er staat is me nogal onduidelijk.
Er wordt 'usort' genoemd. In de PHP handleiding staat een voorbeeld binnen een function, iets wat ik nog nooit begrepen heb. Verder staat er bijster weinig uitleg over usort in de handleiding.
Het volgende script wordt genoemd:
PHP:
1
2
3
4
5
6
7
8
9
| <? //$namen = dus je originele array met namen. $_namen = natcasesort($namen); $nieuw = array(); foreach($_namen as $naam){ $nieuwe[]=$naam; } ?> |
Hier ontgaat me de werking ook van. Waarom wordt er een nieuw array "$nieuw" aangemaakt? Deze wordt verder niet meer gebruikt. Of moet het "$nieuwe" zijn, zoals verder weer terug komt?
Tot en met de foreach regel kom ik helemaal mee. Maar daarna wordt $naam opgeslagen in $nieuwe. Wat heb je dan bereikt?
Bovendien krijg ik een "Warning: Invalid argument supplied for foreach()" bij dit script.
Wellicht is het beter om dit script helemaal te vergeten.
Een handige oplossing (of gewoon een functie?) kom ik niet echt op.