Sortieren in foreach
Connor
- php
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
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
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
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?
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