Mehr Dimensionale Array sortieren

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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.

    Comment


    • #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"); 

      Comment


      • #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

        Comment


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

          Comment


          • #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

            Comment

            Working...
            X