Rabeneik: Multidimensionales Array sortieren: Neues Array

Beitrag lesen

Hallo Raketenwissenschaftler,

Der Trick bei usort und Kolleginnen ist, dass man einer selbst geschriebenen Vergleichsfunktion zwei Parameter mitgibt.

Ich habe mich die letzte Stunde ausführlich damit beschäftigt. Es ist mir auch gelungen, ein Array zu sortieren. Aber meine Frage konnte ich so nicht lösen.

Die Vergleichsfunktion vergleicht beide:

Ist der erste (in den Beispielen $a) kleiner als wie zweite, so gubt diese Funktion -1 zurück: usort tut dann nichts.

Ist der erste (in den Beispielen $a) genau so groß als der zweite, so gibt diese Funktion "0" zurück. usort tut dann nichts.

Ist der erste (in den Beispielen $a) größer als der zweite, so gibt diese Funktion "1" zurück. Usort tauscht dann um.

Ging für mich aus der Doku erstmal nicht sofort hervor. Jetzt natürlich schon, danke für die Erklärung.

Meine Vergleichsfunktion für usort macht im Prinzip genau das, was Rolf geschrieben hat: Wenn sich das datum nicht unterscheidet wird nach UID sortiert. Unterscheidet sich auch die nicht, dann nach Prio, dto nach Prio2.

Ich habe noch eine Hilfsfunktion geschrieben, welche anders die in den Beispielen im Handbuch wenigstens sowohl Strings als auch Zahlenwerte verträgt und mit dem dritten Parameter $invers eine andere Sortierreihenfolge ermöglicht (es werden dann einfach $a und $b vertauscht...)

Sehr geil. Gerade die Inversfunktion ist sehr hilfreich. Die Stringfunktion ist für mich egal, aber als Grundgerüst für spätere Sortierungen werde ich sie mir behalten 😉

Sie funktioniert nicht nur in Deinem Beispiel, sondern auch in meinem Original, wie gewünscht! Danke für die Hilfe!

Interessant war auch, ich wußte gar nicht, dass man das Array in foreach ( [ 'Datum', 'UID', 'Prio', 'Prio2' ] as $itemProp ) { direkt übergeben kann ohne es in einer Variable zwischenzuspeichern.

Rabeneik

0 50

Multidimensionales Array sortieren

Rabeneik
  • php
  1. 0
    Tabellenkalk
    1. 0
      Rabeneik
      1. 1
        raketenhandbuchleser
  2. 0
    Raktenhandbuchleser
    1. 0
      Rabeneik
      1. 0
        Raktenhandbuchleser
        1. 0
          Rabeneik
  3. 1
    Rolf B
    1. 0
      Rabeneik
      1. 0
        Rolf B
        1. 0

          Multidimensionales Array sortieren: Neues Array

          Rabeneik
          1. 0
            Rolf B
          2. 0
            Raketenhandbuchleser
            1. 0

              Mist! (Korrektur)

              Raketenhandbuchleser
              1. 0
                Rabeneik
          3. 0
            Rolf B
            1. 0
              Raketenhandbuchleser
              1. 0
                Rabeneik
                1. 0
                  Raketenhandbuchleser
                  1. 0
                    Rabeneik
                    1. 0
                      Raketenhandbuchleser
            2. 0
              Rabeneik
              1. 0
                Rolf B
                1. 0
                  Rabeneik
                  1. 0
                    Raketenwissenschaftler
                    1. 0
                      Rabeneik
                      1. 0

                        Danke fürs Danke!

                        Raketenwissenschaftler
                        1. 0
                          Raketenwissenschaftler
                          • zur info
                    2. 0
                      😁😁
                      • humor
                    3. 1
                      dedlfix
                      1. 1
                        Rolf B
                        1. 0
                          Der Martin
                      2. 0

                        Vorschläge überprüfbar überprüft

                        Raketenwissenschaftler
                        1. 0

                          Messfehler entdeckt und korrigiert. Erneute Messung:

                          Raketenwissenschaftler
                          1. 0
                            Raketenwissenschaftler
                        2. 1
                          dedlfix
                          1. -1
                            Raketenwissenschaftler
                            1. 0
                              Rolf B
                              1. 0
                                Raketenwissenschaftler,
                                1. 1
                                  Rolf B
                                  1. 0
                                    Raketenphilosoph
                                    1. 1
                                      Julius
                                      1. 0

                                        Über CPUs „wandernder“ Prozess

                                        Raketenphilosoph
                                        1. 0
                                          Rolf B
                                          1. 2
                                            Raketenphilosoph
                                          2. 0

                                            (sich kloppende threads)

                                            Raketenspaßverteiler
                                            • humor
                            2. 0
                              Rabeneik
                              1. 0
                                Raketenwissenschaftler
  4. 0
    TS