Autor | Zpráva | ||
---|---|---|---|
krupis Profil * |
Ahoj...potřeboval bych poradit, jak třídit na základě dvou kritérií... Dělám tabulku pro sportovní klub. Nejdřív třídím na základě bodů:
function cmp($a, $b) { if ($a == $b) { return 0; } return ($a > $b) ? -1 : 1; } $body = array('Chodov' => $chodov_body, 'Karviná' => $karvina_body, 'Litovel' => $litovel_body, 'Náchod' => $nachod_body, 'Ostrava' => $ostrava_body, 'Brno' => $brno_body); uasort($body, 'cmp'); Tohle mi do pole $body hezky seřadí týmy podle bodů. Teď ale přichází okamžik, kdy mají např. 2 týmy stejný počet bodů a já potřebuju rozlišit umístění těchto dvou týmu podle rozdílu ve skóre. Rozdíl mezi vstřelenými a obdrženými brankami mám uložený v proměnných $chodov_rozdil, $karvina_rozdil atd...Napadlo mě vytvořit podmínku pro tyhle proměnné a vložit to do "function cmp" na místo, kde je v ukázce "return 0;". Jenže... jak ten skript pozná, když se např. rovnají $chodov_body a $karvina_body, že má srovnat právě $chodov_rozdil a $karvina_rozdil; ? Díky za rady... Moderátor Str4wberry: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
|
||
fajzen Profil |
#2 · Zasláno: 27. 11. 2009, 09:16:10
Lenže ani v tom tvojom poli, ktoré radíš, nemáš žiadne informácie o rozdieloch v skóre... Ak spravíš to pole dvojdimenzionálne, napr:
$teamy = array( 'Chodov' => array( 'body' => $chodov_body, 'rozdil' => $chodov_rozdil ), 'Karviná' => array( 'body' => $karvina_body, 'rozdil' => $karvina_rozdil ) ) tak by funkcia cmp() mohla vyzerať takto: function cmp($a, $b) { if ($a['body'] == $b['body']) { return ($a['rozdil'] > $b['rozdil']) ? -1 : 1; } return ($a['body'] > $b['body']) ? -1 : 1; } |
||
Časová prodleva: 14 let
|
0