Array alphabetisch sortieren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Array alphabetisch sortieren

    Hallo, ich versuche die Zeilen einer .txt zu sortieren.
    Mit file() schreibe ich jede Zeile in ein Array.
    Das Array sortiere ich dann mit sort().

    Warum kommt aber folgendes bei raus:
    Code:
    K
    KC DA Rookee feat. Afrob, Samy Deluxe & D-Flame – Four fists (Part 2) (CD8)
    Kai Tracid – 4 just one day (CD3)
    und
    Code:
    M
    MC Hammer – You can’t touch this (CD42)
    Maarja – Could you (CD50)
    case sensitive?

  • #2
    wer lesen kann, ist klar im Vorteil. Die aller erste User Note lautet:
    Note that using sort() it seems to sort by ASCII code, because "AC" is before "Ab" in the result array

    Kommentar


    • #3
      http://at.php.net/manual/de/function.natcasesort.php
      "Nemo ante mortem beatus."

      Kommentar


      • #4
        danke, aber bei natcasesort() hab ich

        Code:
        Kate Ryan – Libertine (CD1)
        Kid Q - This feeling (CD1)
        Kai Tracid – 4 just one day (CD3)
        Kate Ryan – Desechantee (CD3)
        Kool Savas – Optik anthem (CD4)
        der sortiert nach den cd's

        Kommentar


        • #5
          Kann schlicht und einfach nicht sein ...
          "Nemo ante mortem beatus."

          Kommentar


          • #6
            na, dann eben mit usort() und die strings z.b. in kleinschreibweise vergleichen
            PHP-Code:
            usort(    $array,
                    
            create_function('$i, $j''    $i = strtolower($i);
                                                $j = strtolower($j);
                                                if($i == $j) return 0;
                                                else return ($i < $j) ? -1 : 1;
                                                '

                );

            print_r($array); 
            (ungetestet)

            Kommentar


            • #7
              Habe mir dein Beispiel nicht angeschaut aber es müsste normalerweise doch einfach mit natcasesort() funktionieren. Keine Ahnung warum das bei diesen Testdaten nicht der Fall ist.
              "Nemo ante mortem beatus."

              Kommentar


              • #8
                Original geschrieben von Toby2488
                der sortiert nach den cd's
                Das stimmt nicht. natcasesort (php5.1.2) sortiert die 5 Testzeilen korrekt. Tipp: die Verarbeitung nach dem Sortieren muss mit foreach() geschehen, nicht mit einer for-Schleife über den Index. Die keys, auch wenn numerisch, werden mitsortiert.
                Zuletzt geändert von heiss; 15.07.2006, 23:35.

                Kommentar


                • #9
                  PHP-Code:
                  natcasesort($array);
                  $array array_values($array); 

                  Kommentar

                  Lädt...
                  X