Nina-K: Array - Multidimensionale sortieren

Beitrag lesen

Hallo,

als erstes ich habe mit PHP seit ca. 4 Tagen zu tun von daher bitte nicht gleich erschlagen, wenn mein Wissen defizitär ist.

Folgender Hintergrund, ich habe ein Multidimensionales Array, welches ich mit folgenden Funktionen sortieren kann:

Nach Preis

function sortieren_preis($wert_a, $wert_b)  
  {  
      // Sortierung nach dem zweiten Wert des Array (Index: 5)  
      $a = $wert_a[5];  
      $b = $wert_b[5];  
  
      if ($a == $b) {  
          return 0;  
     }  
  
     return ($a < $b) ? -1 : +1;  
 }

Nach Lieferbarkeit

 function sortieren_lieferbar($wert_a, $wert_b)  
  {  
      // Sortierung nach dem zweiten Wert des Array (Index: 8)  
      $a = $wert_a[8];  
      $b = $wert_b[8];  
  
      if ($a == $b) {  
          return 0;  
     }  
  
     return ($a < $b) ? -1 : +1;  
 }

Beide funktionieren soweit richtig. Das Problem ist, wenn ich nach Lieferbarkeit sortiere sind mehrere Artikel "Lieferbar", dann möchte ich gerne eine sortieren nach Preis.

Beispiel aus:
Lieferant 1; Lieferbar "Sofort"; Preis 13,76;
Lieferant 2; Lieferbar "Sofort"; Preis 18,66;
Lieferant 3; Lieferbar "Sofort"; Preis 14,76;
Lieferant 4; Lieferbar "Morgen"; Preis 13,77;
Lieferant 5; Lieferbar "Morgen"; Preis 13,76;

wird:
Lieferant 1; Lieferbar "Sofort"; Preis 13,76;
Lieferant 3; Lieferbar "Sofort"; Preis 14,76;
Lieferant 2; Lieferbar "Sofort"; Preis 18,66;
Lieferant 5; Lieferbar "Morgen"; Preis 13,76;
Lieferant 4; Lieferbar "Morgen"; Preis 13,77;

Meine Idee war zuerst nach Preis und dann nach Lieferbarkeit zu sortieren:

usort($result, 'sortieren_preis');  
usort($result, 'sortieren_lieferbar');

Das führte aber nicht zu einem zufriedenstellenden Ergebnis. Wo haben ich den Gedankenfehler?

Nina