Beste PHPHulp'ers,

Ik heb een vraag. Na een aantal queries kom ik met deze array uit:

Array (
'sjappie' => 3
'sjakie' => 4
'trudie' => 3
'ik' => 99
'iemand anders' => 1
'thea' => 2
)


Nu wil ik hier deze lijst uit krijgen:
<ol>
<li>ik heeft 99 punten</li>
<li>sjakie heeft 4 punten</li>
<li>sjappie heeft 3 punten
<br />
trudie heeft 3 punten</li>
<li>thea heeft 2 punten</li>
<li>iemand anders heeft 1 punten</li>
</ol>

Nog liever heb ik de derde zo:
<li>sjappie en trudie hebben allebei 3 punten</li>
En de 5e zo:
<li>iemand anders heeft 1 punt</li>


Ik snap echt niet hoe ik deze lijst zo kan krijgen. Of moet ik de array-structuur anders doen?

Groeten,

Wieland
Eerst maar de simpele manier. Stel dat de array $punten heet:
<?php
echo '<ol>';
foreach ($punten as $key => $value) {
echo '<li>'.$key.' heeft '.$value.' punten</li>';
}
echo '</ol>';
?>
Voor het sorteren moet je even kijken bij de arrayfuncties op php.net
[edit]
Daarvoor moet je [php]arsort[/php] hebben.
[/edit]

Bedankt voor je reactie jan!

Ja ik heb al rondgezocht op php.net, en heb een paar functies eeuhm, hoe zeg je dat, bekeken.
[li]Ten eerste: [php]array_flip[/php]. Dit werkt niet aangezien er meerdere users zijn met bijvoorbeeld 3 punten. [/li]
[li]Ten tweede: sort sorteert werkt ook niet, kijk maar naar deze twee arrays (1e is voor sort(), en tweede na):
Array

(
    [sjappie] => 3
    [sjakie] => 4
    [trudie] => 3
    [ik] => 99
    [iemand anders] => 1
    [thea] => 2
)
 
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 3
    [4] => 4
    [5] => 99
)

Dat werkt dus niet, omdat ik nu de usernames niet meer heb. [/li]
[li]Derde: asort() komt al aardig in de buurt, alleen nu komt 1 bovenaan, en onderaan 99. [/li]

Ik kom er dus niet uit. Heeft iemand een tip?

Groet,

Wieland

Ik zei dan ook arsort, en niet asort ;-)

Die letter r staat voor reverse.

Reageren