Mehr Dimensionale Array sortieren

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

  • Mehr Dimensionale Array sortieren

    Hi Leute!
    Ich hab ein kleines Problem und hoffe ihr könnt mir helfen

    Ich hab ein Array in der Form:

    Code:
    Array
    (
        [0] => Array
            (
                [id] => 1
                [catid] => 12
                [position] => 1
                [postlimit] => 10
                [timetoshow] => 10
                [name] => test
            )
    
        [1] => Array
            (
                [id] => 4
                [catid] => 41
                [position] => 5
                [postlimit] => 7
                [timetoshow] => 8
                [name] => bla
            )
    
        [2] => Array
            (
                [id] => 5
                [catid] => 42
                [position] => 4
                [postlimit] => 9
                [timetoshow] => 3
                [name] => blub
            )
    Und möchte es nach "position" sortieren. Dabei werden alle Werte Integer sein.
    d.h. die Felder [0],[1],[2] sollen mit neuem index sortiert werden. Also in dem beispiel [0],[2],[1]

    Ich vermute das es mit array_multisort() funktioniert und nach meinem Verständnis müsste es mit
    PHP-Code:
        array_multisort ($showncats["position"],SORT_ASC);
     
    // ODER
        
    array_multisort (array($showncats["position"]),SORT_ASC); 
    Funktionieren.Klappt aber nicht ($showncats ist das array die ich hier mit print_r ausgegeben habe)

    Hat jmd. ein tipp für mich?
    Danke im voraus

  • #2
    usort + selbstgeschriebene Vergleichsfunktion
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Danke für den tipp!
      Hier meine lösung falls jmd. mal über google oder so hier landet:
      PHP-Code:
      function cmp ($a$b) {return $a["position"] > $b["position"];}
      usort($showncats"cmp"); 

      Kommentar


      • #4
        1:
        Dein cmp() muß entweder -1, 0 oder 1 liefern und nicht true oder false.
        So wie du das hast kann das in die Hose gehen. Zumindest schmeißt du dem Quicksort Knüppel zwischen die Beine und machst einen LahmSort daraus.

        Also: Nochmal ins Handbuch schauen!!

        2:
        Die Daten kommen doch sicher aus der DB! Oder?
        Überlass der DB das Sortieren.
        Wir werden alle sterben

        Kommentar


        • #5
          Nach Definition ist der Rückgabewert ein beliebiger signed integer, nicht?

          Kommentar


          • #6
            Wenn auch...
            1. Boolean sind keine INT!!
            2. Boolean hat nur 2 Zustände, der cmp() muß/sollte 3 Zustände liefern
            Da steht doch auch alles im Handbuch...
            Wir werden alle sterben

            Kommentar

            Lädt...
            X