|
Categorieën >
PHP
ranks
|
|
|
offline
|
PHP ver gevorderde
|
Ik heb 40 ranks nodig die je met punten krijgt (xx punten is rank 1, xx punten is rank 2, xx punten rank 5 etc)
hoe kan ik het aantal punten bepalen zonder dat ik uiteindelijk 40 elseif's heb, en hoe kan ik het aantal punten benodigd voor rank x het makkelijkst berekenen? |
4 antwoorden
|
|
|
offline
|
HTML beginner
|
|
Koen – 17/11/2007 17:44 (Laatst gewijzigd op 17/11/2007 18:04)
|
|
offline
|
Community Manager
|
Je zet alle ranks in een array en doet dan zo:
<?php
$ranks = array(10,30,70,100,120); // wel op volgorde zetten..
$rankaid = array(10=>"rank1",30=>"rank2",70=>"rank3",100=>"rank4",120=>"rank5");
$points = 89;
$ranks = array_reverse($ranks);
foreach($ranks as $value) {
if($points >= $value) {
$derank = $rankaid[$value];
break;
}
}
if(!@isset($derank)) {
$derank = "geen_rank";
}
?>
<?php $ranks = array(10,30,70,100,120); // wel op volgorde zetten.. $rankaid = array(10=>"rank1",30=>"rank2",70=>"rank3",100=>"rank4",120=>"rank5"); $points = 89; foreach($ranks as $value) { if($points >= $value) { $derank = $rankaid[$value]; break; } } $derank = "geen_rank"; } ?>
Als je het niet begrijpt zal ik het wel uitleggen.
edit: zat foutje in
|
timo – 17/11/2007 17:59
|
|
offline
|
PHP ver gevorderde
|
ik begrijp het wel, maar het is niet helemaal wat ik bedoel:P op deze manieren moet ik toch zelf een aantal punten bedenken, ik zoek meer naar x + x % maar het moet niet te explosief toenemen..
|
KingIsulgard – 18/11/2007 23:02 (Laatst gewijzigd op 18/11/2007 23:15)
|
|
offline
|
Nieuw lid
|
zet je punten in een array en sorteer die van laag naar hoog of van hoog naar laag en gebruik dan gwn een for lus.
Je kan het zelfs met usernames en dergelijke doen mits wat uitbreiding:
<?php
// De users met hun punten
$users["user1"] = 10;
$users["user2"] = 35;
$users["user3"] = 20;
// Sorteer ze van laag naar hoog
sort($users);
// Schrijf de rankings
foreach ($users as $rank => $points) {
echo $rank+1 . ". " . $name . " with " . $points . " points<br>\n";
}
?>
<?php // De users met hun punten $users["user1"] = 10; $users["user2"] = 35; $users["user3"] = 20; // Sorteer ze van laag naar hoog // Schrijf de rankings foreach ($users as $rank => $points) { echo $rank+1 . ". " . $name . " with " . $points . " points<br>\n"; } ?>
|
Dit onderwerp is gesloten.
|
|
|