Fussballtabelle sortieren - Problem

Deine FOR-Schleife wäre vielleicht noch ganz interessant anzusehen.
Und gib doch testweise mal alle Variablen mit [phpf]print_r[/phpf] aus. Dann bekommst du einen ganz guten Überblick, wie die Arrays aufgebaut sind (wenn es denn überhaupt Arrays sind, laut Fehlermeldung ja scheinbar nicht).
 
Nee, meine for-Schleife ist gigantisch... :-)

ich hab das Problem aber gelöst...

ich hab das Array:
PHP:
$teams[$b]['name'] = mysql_result($query2,$b,"team_original_name");
$teams[$b]['short'] = mysql_result($query2,$b,"team_short");
$teams[$b]['played'] = $played;
$teams[$b]['won'] = $won;
$teams[$b]['lost'] = $lost;
$teams[$b]['draw'] = $draw;
$teams[$b]['goals'] = $goals.' / '.$vgoals;
$teams[$b]['points'] = $points;
editiert, und nun siehts so aus:
PHP:
$teams['name'][$b] = mysql_result($query2,$b,"team_original_name");
$teams['short'][$b] = mysql_result($query2,$b,"team_short");
$teams['played'][$b] = $played;
$teams['won'][$b] = $won;
$teams['lost'][$b] = $lost;
$teams['draw'][$b] = $draw;
$teams['goals'][$b] = $goals.' / '.$vgoals;
$teams['points'][$b] = $points;
und so hab ich mit der Funktion [phpf]array_multisort[/phpf] keine Probleme, und kann die Einträge richtig anzeigen!

Danke vielmals an ludz! :)

Greetz, DoRiMaN
 
Halli Hallo...

bin wieder da... also, sortieren tut er jetzt richtig, jetzt kommt aber das Problem der Direktbegegnung...

ich generiere das Array Folgendermassen:

PHP:
// weiter oben beginnt eine For-Schleife, die jedes Team dieser Gruppe hinzufügt....
$teams['name'][$b] = mysql_result($query2,$b,"team_original_name");
$teams['short'][$b] = mysql_result($query2,$b,"team_short");
$teams['played'][$b] = $played;
$teams['won'][$b] = $won;
$teams['lost'][$b] = $lost;
$teams['drawn'][$b] = $drawn;
$teams['goals'][$b] = $goals.' / '.$vgoals;
$teams['goals_difference'][$b] = $goals-$vgoals;
$teams['points'][$b] = $points;
} // Ende der For-Schleife
so sortiere ich nun das Array mit den Teams:
PHP:
array_multisort($teams['points'], SORT_DESC, SORT_NUMERIC,$teams['goals_difference'], SORT_DESC, SORT_NUMERIC,$teams['name'],SORT_ASC,SORT_STRING,$teams['short'],$teams['played'],$teams['won'],$teams['lost'],$teams['drawn'],$teams['goals']);
die Tabelle wird jetzt so ausgegeben, dass bei Punktegleichheit die Tordifferenz entscheidet. Jedoch sollte zuerst die Direktbegegnung massgeben sein. Nun habe ich viele Varianten mit verschiedenen For-Schleifen versucht, um nach dem [phpf]array_multisort[/phpf] das Array manuell zu sortieren, aber hab (noch) keine Lösung gefunden...

die letzte Variante war folgende:
PHP:
$equals = array();
for($f=0;$f<count($teams['name']);$f++){
	$actual_points = $teams['points'][$f];
	$actual_team = $teams['name'][$f];
	for($g=0;$g<count($teams['name']);$g++){
		if($actual_team!=$teams['name'][$g]){
			if($actual_points==$teams['points'][$g]){
				if(count($equals)==0){
					$equals[0] = $actual_team;
					$equals[1] = $teams['name'][$g];
				} else {
					for($h=0;$h<count($equals);$h++){
						if($equals[$h]!=$actual_team){
							$equals[count($equals)] = $actual_team;
						}
						if($equals[$h]!=$teams['name'][$g]){
							$equals[count($equals)] = $teams['name'][$g];
						}
					}
				}
			}
		}
	}
}
ich weiss, sortieren tu ich hier noch nicht! Ich wollte nur eine Variante suchen, um die Teams zo "notieren", die den gleichen Punktestand haben. Danach müsste ich dann die DB abfragen (Resultat der Direktbegegnung) und je nach dem sortieren...

Die oberen Schleifen generieren einen Fehler und mein Apache stürzt ab :-)
hab noch nicht herausbekommen weshalb. Jedoch suche ich nach einer besseren Lösung. Hab momentan wirklich keine Ideen :(

Ich hoffe da kann mir jemand helfen...

Danke und Greetz,

DoRiMaN
 
Zurück