asort funktioniert nicht richtig

Paspirgilis

Weißer Powerranger
Versteht einer von euch warum das rauskommt?
Code:
array(10) {
  [0]=>

  string(9) "christian"
  [1]=>
  string(10) "Waldfriede"
  [2]=>
  string(6) "Detlev"
  [3]=>
  string(6) "Sascha"
  [4]=>
  string(4) "jsdf"
  [5]=>
  string(3) "abc"
  [6]=>

  string(4) "test"
  [7]=>
  string(4) "test"
  [8]=>
  string(5) "Noval"
  [9]=>
  string(6) "robert"
}
array(10) {
  [2]=>
  string(6) "Detlev"
  [8]=>
  string(5) "Noval"
  [3]=>

  string(6) "Sascha"
  [1]=>
  string(10) "Waldfriede"
  [5]=>
  string(3) "abc"
  [0]=>
  string(9) "christian"
  [4]=>
  string(4) "jsdf"
  [9]=>
  string(6) "robert"
  [6]=>

  string(4) "test"
  [7]=>
  string(4) "test"
}
bei dem PHP Code:
PHP:
    var_dump($keyAssigns);
    asort($keyAssigns);
    var_dump($keyAssigns);
Das ist einfach nur falsch, als ob php einen Fehler gemacht hat :(
Oder passiert das nur um mich zu ärgern? :D
Hoffe ihr könnt mir helfen herrauszufinden warum der das Array nicht richtig sortieren will.

MfG
Mark Paspirgilis
 
Alles wunderbar, die Ausgabe ist vollkommen richtig. Begründet liegt die ganze Sache in der ASCII-Tabelle. Wie du dort sehen kannst haben die großen Buchstaben allesamt einen kleineren Wert als die kleinen Buchstaben, daher ist ein großer Buchstabe, egal welcher, immer lexikalisch kleiner als ein kleiner Buchstabe. Deswegen kommen erst alle Strings, die mit Großbuchstaben beginnen, dann die, die mit Kleinbuchstaben beginnen.

Umgehen kannst du dieses Problem, indem du

1.) alle Strings entweder mit Großbuchstaben oder Kleinbuchstaben beginnst oder
2.) auf usort() zurückgreifst und dir eine eigene Funktion zum Vergleich schreibst, die nicht auf Groß- und Kleinschreibung achtet (und dabei den originalen Arrayinhalt nicht ändert)
 
Zurück