note 93930 added to class.splheap

From: Date: Wed, 07 Oct 2009 06:44:31 +0000
Subject: note 93930 added to class.splheap
Groups: php.notes 
Request: Send a blank email to php-notes+get-161430@lists.php.net to get a copy of this message
To have a good idea what you can do with SplHeap, I created a little example script that will show the rankings of Belgian soccer teams in the Jupiler League. <?php /** * A class that extends SplHeap for showing rankings in the Belgian * soccer tournament JupilerLeague */ class JupilerLeague extends SplHeap { /** * We modify the abstract method compare so we can sort our * rankings using the values of a given array */ public function compare($array1, $array2) { $values1 = array_values($array1); $values2 = array_values($array2); if ($values1[0] === $values2[0]) return 0; return $values1[0] < $values2[0] ? -1 : 1; } } // Let's populate our heap here (data of 2009) $heap = new JupilerLeague(); $heap->insert(array ('AA Gent' => 15)); $heap->insert(array ('Anderlecht' => 20)); $heap->insert(array ('Cercle Brugge' => 11)); $heap->insert(array ('Charleroi' => 12)); $heap->insert(array ('Club Brugge' => 21)); $heap->insert(array ('G. Beerschot' => 15)); $heap->insert(array ('Kortrijk' => 10)); $heap->insert(array ('KV Mechelen' => 18)); $heap->insert(array ('Lokeren' => 10)); $heap->insert(array ('Moeskroen' => 7)); $heap->insert(array ('Racing Genk' => 11)); $heap->insert(array ('Roeselare' => 6)); $heap->insert(array ('Standard' => 20)); $heap->insert(array ('STVV' => 17)); $heap->insert(array ('Westerlo' => 10)); $heap->insert(array ('Zulte Waregem' => 15)); // For displaying the ranking we move up to the first node $heap->top(); // Then we iterate through each node for displaying the result while ($heap->valid()) { list ($team, $score) = each ($heap->current()); echo $team . ': ' . $score . PHP_EOL; $heap->next(); } ?> This results in the following output: Club Brugge: 21 Anderlecht: 20 Standard: 20 KV Mechelen: 18 STVV: 17 Zulte Waregem: 15 AA Gent: 15 G. Beerschot: 15 Charleroi: 12 Racing Genk: 11 Cercle Brugge: 11 Kortrijk: 10 Lokeren: 10 Westerlo: 10 Moeskroen: 7 Roeselare: 6 Hope this example paved the way for more complex implementations of SplHeap. ---- Server IP: 193.190.67.7 Probable Submitter: 81.241.34.112 ---- Manual Page -- http://www.php.net/manual/en/class.splheap.php Edit -- https://master.php.net/note/edit/93930 Del: integrated -- https://master.php.net/note/delete/93930/integrated Del: useless -- https://master.php.net/note/delete/93930/useless Del: bad code -- https://master.php.net/note/delete/93930/bad+code Del: spam -- https://master.php.net/note/delete/93930/spam Del: non-english -- https://master.php.net/note/delete/93930/non-english Del: in docs -- https://master.php.net/note/delete/93930/in+docs Del: other reasons-- https://master.php.net/note/delete/93930 Reject -- https://master.php.net/note/reject/93930 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#161430) next »