note 93930 added to class.splheap
| From: | MichelangelovanDam at osu1 dot php dot net | 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