asort case insensitive

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

  • asort case insensitive

    Hi,

    irgendwie scheine ich momentan blind zu sein, oder es gibt schlichtweg keine Funktion die das macht.

    Ich suche nach einer Funktion die das selbe macht die asort(), allerdings ohne auf Groß- und Kleinschreibung der enthaltenen Strings zu achten.

    Hat da jemand nen Tip?

  • #2
    Versuchs mal damit:

    PHP-Code:
    natcasesort() 
    Hier sind alle Arten von Sortmethoden:

    sort()

    Kommentar


    • #3
      1) uasort
      http://de2.php.net/manual/de/function.uasort.php

      und eigene funktion mit
      2)
      strtolower
      http://de2.php.net/manual/de/function.strtolower.php
      3)strcmp
      http://de2.php.net/manual/de/function.strcmp.php
      Slava
      bituniverse.com

      Kommentar


      • #4
        @godfrey: danke, aber du hast schon gesehen das ich asort() brauche, weil die Key-Assoziationen erhalten bleiben müssen.

        @slava: danke, ich hatte gehofft da drum rum zu kommen...

        thnx

        Kommentar


        • #5
          Original geschrieben von prego
          @godfrey: danke, aber du hast schon gesehen das ich asort() brauche, weil die Key-Assoziationen erhalten bleiben müssen.
          OffTopic:
          ups, sry, man sollte sich beim Lesen einer Frage manchmal mehr Zeit nehmen.

          Kommentar


          • #6
            Original geschrieben von prego
            @godfrey: danke, aber du hast schon gesehen das ich asort() brauche, weil die Key-Assoziationen erhalten bleiben müssen.
            die bleiben doch erhalten!

            bool natcasesort ( array &array )


            Diese Funktion implementiert einen Sortieralgorithmus, welcher alphanumerische Zeichenketten reiht, wie es auch ein Mensch tun würde, wobei Sie die Schlüssel-Wert-Zuordnung beibehält. Das wird als "natürliche Reihenfolge" bezeichnet.

            Kommentar


            • #7
              @godfrey: siehste, hattest recht

              danke 3dmax - ICH sollte mir wohl ab und zu mehr zeit nehmen das manual zu lesen

              Kommentar


              • #8
                Also irgendwie scheint doch wieder Prego recht gehabt zu haben mit den Schlüsselwerten...

                Hab mir mal folgendes Beispiel geholt und getestet:
                PHP-Code:
                <?PHP
                $array1 
                = array("PHP2","php4","PHP3","PHP10");
                $array2 = array("PHP2","php4","PHP3","PHP10");
                $array3 = array("PHP2","php4","PHP3","PHP10");
                sort($array1);
                echo 
                "Standard Sortierung nach sort()\n";
                print_r($array1);
                echo 
                "<br />";
                natcasesort($array2);
                echo 
                "Natürliche Sortierung natcasesort()\n";
                print_r($array2);
                echo 
                "<br />";
                asort($array3);
                echo 
                "Sortierung nach asort()\n";
                print_r($array3);
                ?>
                Dabei kommt folgendes raus:
                PHP-Code:
                Standard Sortierung nach sort() Array ( [0] => PHP10 [1] => PHP2 [2] => PHP3 [3] => php4 
                Natürliche Sortierung natcasesort() Array ( [0] => PHP2 [2] => PHP3 [1] => php4 [3] => PHP10 
                Sortierung nach asort() Array ( [3] => PHP10 [0] => PHP2 [2] => PHP3 [1] => php4 
                Also würde die Aussage von 3DMax nicht zutreffen. Irgendwie bin ich grad ein wenig verwirrt.

                Hoffe aber, dass kann jemand aufklären, weil, die Wahrscheinlichkeit ist gross, dass ich auf dem Schlauch stehe.

                Kommentar


                • #9
                  @Godfrey
                  das ist gut, dass du getestet hast.
                  natsort hat eigentlich ganz andere aufgabe die daten zu sortieren, und zwar nach dem prinzip, wie das ein mensch macht. es versucht einfach wenn er in einem text die zahlen findet sie als ein zahl und nicht als ein string zu behandeln.
                  Vermutlich war auch natsort für die bedürfnise von @prego ausreichend, aber wenn er auf ein mal die zahlen in senem string bekommt, dann wird mögliche weise seine sortierung zur unerwünschtem ergebnis führen.
                  bei standartsortierung ist nämlich PHP10 kleiner als PHP2
                  und bei natsort nicht.
                  Slava
                  bituniverse.com

                  Kommentar


                  • #10
                    Ich hatte bei dem Test jetzt eher nicht darauf geachtet ob es sich um Zahlen oder um Zeichen handelt, sondern es ging mir eher mal um die Schlüsselwerte, was mit denen geschieht.

                    sort() ist klar, er tauscht die Schlüsselwerte aus. natsort()/natcasesort() machen das aber auch. Und ich denke, darum ging es Prego, der Schlüsselwert sollte beim Feld erhalten bleiben so wie es der asort() macht. Laut 3DMax sollten die Schlüsselwerte aber beim natsort() erhalten bleiben. Das würde aber mein Test widerlegen.

                    Das ist was ich im Moment nicht kapiere.

                    Kommentar


                    • #11
                      Original geschrieben von Godfrey
                      Laut 3DMax sollten die Schlüsselwerte aber beim natsort() erhalten bleiben. Das würde aber mein Test widerlegen.

                      Das ist was ich im Moment nicht kapiere.
                      aursprungsarray: $array2 = array("PHP2","php4","PHP3","PHP10");
                      schlüssel beginnt bei 0 und endet bei 3

                      Natürliche Sortierung natcasesort() Array ( [0] => PHP2 [2] => PHP3 [1] => php4 [3] => PHP10 )

                      und was verstehst du jetzt daran nicht? die schlüsselbeziehungen bleiben doch erhalten.

                      Kommentar


                      • #12
                        Mann, ich bin wohl Blind, hab das mehrfach angeschaut aber irgendwie übersehen. Klar bleiben die Schlüsselwerte beim natsort() erhalten.

                        Kommentar

                        Lädt...
                        X