Connor: Sortieren in foreach

Guten Morgen,
leider komme ich das Sorteiren nicht hin innerhalb einer foreach-schleife.
Ausgangs-Array:

<?php  
$rangliste = array (  
// Anzahl: 1.er, Gewonne Spiele, Verlorene Spiele,2.ter 2,3.ter,  
'name_2'=> array (3,10,3,3,0),  
'name_1'=> array (5,12,2,0,3),  
)  
?>

Ich möchte in der Foreach, die errechnete $quote sortieren:

function vergleich($wert_a, $wert_b)  
{  
    // Sortierung nach dem zweiten Wert des Array (Index: 1)  
   $a = $wert_a[0];  
   $b = $wert_b[0];  
  
    if ($a == $b) {  
        return 0;  
    }  
  
   return ($a < $b) ? -1 : +1;  
}  
foreach ($rangliste as $name => $werte){  
  
$ges_spiele = $werte[1]+$werte[2];  
  
$quote = $werte[1]/$ges_spiele*100;  
  
// jetzt sortiere Quote Absteigend  
usort($quote, 'vergleich');  
// Format der Quote  
$quote = number_format($quote,3, ",", ".");  
  
$output= ".......

Leider klappt das nicht weil: Warning: usort() expects parameter 1 to be array, double given in

Gruss Connor

  1. Hi,

    leider komme ich das Sorteiren nicht hin innerhalb einer foreach-schleife.

    Leider klappt das nicht weil: Warning: usort() expects parameter 1 to be array, double given in

    Und was verstehst du daran nicht?
    usort will ein Array zum Sortieren übergeben bekommen.
    Du übergibst aber eine einzelne Zahl.
    Wie sinnvoll findest du es, einen einzelnen Wert zu „sortieren“?

    Und warum willst du das Sortieren überhaupt innerhalb der foreach-Schleife machen?
    Befülle dir darin dein Array mit den nötigen Werten; sortiere es *anschließend*.

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
    1. Hallo Chris und danke für deine konstruktive Antwort.

      usort will ein Array zum Sortieren übergeben bekommen.
      Du übergibst aber eine einzelne Zahl.
      Wie sinnvoll findest du es, einen einzelnen Wert zu „sortieren“?

      Stimmt, da war ich voll auf dem Holzweg.

      Und warum willst du das Sortieren überhaupt innerhalb der foreach-Schleife machen?
      Befülle dir darin dein Array mit den nötigen Werten; sortiere es *anschließend*.

      Genau! Das hab ich nun gemacht und es klappt. Manchmal sehe ich die einfachsen Dinge nicht vor lauter nachdenken :-)

      Gruß Connor

  2. Hallo,

    gewöhn dir mal bitte eine bessere Art zu kommentieren an, sowas mag ich schon gar nicht lesen. Sowie einen schöneren Programmierstil, das ist einfach häßlich.

    "// Anzahl: 1.er, Gewonne Spiele, Verlorene Spiele,2.ter 2,3.ter,"

    Was soll das heissen? Was soll das bedeuten?

    1. gewöhn dir mal bitte eine bessere Art zu kommentieren an, sowas mag ich schon gar nicht lesen. Sowie einen schöneren Programmierstil, das ist einfach häßlich.

      "// Anzahl: 1.er, Gewonne Spiele, Verlorene Spiele,2.ter 2,3.ter,"

      Was soll das heissen? Was soll das bedeuten?

      Wenn die sache closed source ist, muss eh nur er und sein Team die Sache verstehen :p