Met dank aan GoT, heb ik de volgende multi-array, welke automatisch gesorteerd wordt op de waarde "geld":
Dit werkt goed, als ik "print_r ($multiarray);" doe dan staat de array van jan boven die van piet. Alleen nu moet er ook iets aan het uitlezen veranderen en ik weet niet hoe ik dat het beste kan doen.
Het uitlezen gebeurt namelijk in een tabel op de volgende manier:
Het is de bedoeling dat degene met de hoogste waarde van geld ook bovenaan in de tabel komt te staan, dus op de volgorde hoe de arrays worden gesorteerd.
Mijn gedachte is dat de arraynummers variabel gemaakt moeten worden, dus 'idxx' en dat na het sorteren, een functie dan de bovenste 'id01' maakt, die daar onder 'id02', etc. Op die manier zou ik niets hoeven te veranderen aan het uitlezen. Maar volgens mij gaat dit niet zo makkelijk, zijn er tips hoe ik op een betere/makkelijkere manier toch het gewenste resultaat kan bereiken?
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| <?php function cmp($a, $b) { if ($a['geld'] == $b['geld']) { return 0; } return ($a['geld'] > $b['geld']) ? -1 : 1; } $multiarray = array( 'id01' => array ('name' => 'piet', 'geld' => '16',), 'id02' => array ('name' => 'jan', 'geld' => '65',), 'id03' => array ('name' => 'henk', 'geld' => '09',), 'id04' => array ('name' => 'erik', 'geld' => '02',), ); uasort($multiarray, "cmp"); ?> |
Dit werkt goed, als ik "print_r ($multiarray);" doe dan staat de array van jan boven die van piet. Alleen nu moet er ook iets aan het uitlezen veranderen en ik weet niet hoe ik dat het beste kan doen.
Het uitlezen gebeurt namelijk in een tabel op de volgende manier:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| <tr> <td>naam: <?php echo $multiarray['id01']['name']; ?></td> <td>geld: <?php echo $multiarray['id01']['geld']; ?></td> <td>naam: <?php echo $multiarray['id03']['name']; ?></td> <td>geld: <?php echo $multiarray['id03']['geld']; ?></td> </tr> <tr> <td>naam: <?php echo $multiarray['id02']['name']; ?></td> <td>geld: <?php echo $multiarray['id02']['geld']; ?></td> <td>naam: <?php echo $multiarray['id04']['name']; ?></td> <td>geld: <?php echo $multiarray['id04']['geld']; ?></td> </tr> |
Het is de bedoeling dat degene met de hoogste waarde van geld ook bovenaan in de tabel komt te staan, dus op de volgorde hoe de arrays worden gesorteerd.
Mijn gedachte is dat de arraynummers variabel gemaakt moeten worden, dus 'idxx' en dat na het sorteren, een functie dan de bovenste 'id01' maakt, die daar onder 'id02', etc. Op die manier zou ik niets hoeven te veranderen aan het uitlezen. Maar volgens mij gaat dit niet zo makkelijk, zijn er tips hoe ik op een betere/makkelijkere manier toch het gewenste resultaat kan bereiken?
[ Voor 6% gewijzigd door Ruzor op 07-03-2007 17:14 ]