Ik wil een array hoofdletterongevoelig sorteren (de waarden). Bv.
Citaat:
dinga
Dingb
aapa
Aapb
==>
Citaat:
aapa
Aapb
dinga
Dingb
en niet (zoals ie het nu doet)
Citaat:
Aapb
aapa
Dingb
dinga
Ik gebruik nu de functies:
sort
rsort
asort
arsort
maar deze houden zijn hoofdlettergevoelig.
Ik las op de sort info pagina: PHP.net: sort dit (een reactie van iemand):
Citaat:
The usort function can be used to sort multi-dimension arrays, also.
To do a case-insensitive sort on the 7th column of a two-dimensional array:
usort($listing, create_function('$a,$b','return strcasecmp($a[7],$b[7]);'));
When using associative arrays:
usort($listing, create_function('$a,$b','return strcasecmp($a["name"],$b["name"]);'));
Case-sensitive, descending (just change '$a,$b' to '$b,$a'):
usort($listing, create_function('$b,$a','return strcmp($a["name"],$b["name"]);'));
A two-dimensional array of numbers (7th column, ascending):
usort($listing, create_function('$a,$b','return $a[7]==$b[7]?0:($a[7]<$b[7]?-1:1);'));
Alleen snap ik dit niet echt, kan iemand het uitleggen? Kan ik hier m'n volledige array hoofdletterongevoelig met laten sorteren? Hoe dan?
Warning: array_multisort() [function.array-multisort]: Argument #1 is expected to be an array or a sort flag in /home/quinten/www/array_test.php on line 7
En hij sorteert niks. Iemand die de oplossing voor dit probleem kent?
klopt ja had het ooit ergens gezien denk op php.net en heb het zo terug opgesteld denk dat ik dat even overzien had thx voor de aanpassing, in elk geval zou de gedachte moeten kloppen en zou het script moeten werken.:D
maar blijkbaar kan je inderdaad beter natcasesort($array); gebruiken die ook hoofdletter ongevoelig is. Deze heb ik zelf echter nog niet gebruikt.
dat moet je/ik even opzoeken, zal het posten als ik het vind. anders bedenk ik er wel iets op. kan je de array die gesorteerd is niet gewoon omdraaien na het sorteren???
yep dat klopt als je de keys ook wil behouden moet je je array dupliceren met array_keys en een controle bijhouden op de sort en die tevens toepassen op de array met je keys en die terug mergen. is lastig en omslachtig daarom dat ik denk dat je misschien toch beter met die array_multisort kan verderwerken die staat trouwens ergens op php.net bij PHP.net: sort()
array_reverse() krijgt een input array en geeft een nieuwe array terug waarin de elementen in omgekeerde volgorde staan, waarbij de keys worden gehandhaafd wanneer de preserve_keys TRUE is.