Meerdimensionale of Multidimensionele arrays
Een parameter kan in een array elk gegevenstype hebben (zie eerste hoofdstuk). Een parameter in een array kan dus ook een volgende array zijn en daarmee kan je dus meerdimensionale arrays maken. Meerdimensionale arrays zijn vooral interessant omdat alleen een meerdimensionale array de vorm van een echte tabel heeft. Een gewone array is een tabel met slechts twee kolommen: een voor de sleutel en een voor de bijbehorende waarde. Zo kan je dus extra kolommen toevoegen.
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
32
33
// definiëren van de multi. array #1
$user_db = array( "id_1" => array( 'naam' => 'thomas' , 'gegevens' => 'man' , 'leeftijd' => 18 ),
"id_2" => array( 'naam' => 'david' , 'gegevens' => 'man' , 'leeftijd' => 80 ),
"id_3" => array( 'naam' => 'vincent' , 'gegevens' => 'man' , 'leeftijd' => 3.5 ),
"id_4" => array( 'naam' => 'veronique' , 'gegevens' => 'vrouw' , 'leeftijd' => 30));
// andere manier voor het definiëren van een multi. array
$array = array();
$array['id_1']['naam'] = 'thomas';
$array['id_1']['gegevens'] = 'man';
$array['id_1']['leeftijd'] = '18'
$array['id_2']['naam'] = 'david';
$array['id_2']['gegevens'] = 'man';
$array['id_2']['leeftijd'] = '80'
$array['id_2']['naam'] = 'vincent';
$array['id_2']['gegevens'] = 'man';
$array['id_2']['leeftijd'] = '3.5'
$array['id_2']['naam'] = 'veronique';
$array['id_2']['gegevens'] = 'vrouw';
$array['id_2']['leeftijd'] = '30'
// output (#2) (voor de 2 manieren)
echo $user_db["id_1"]["naam"], "<br>", $user_db["id_1"]["gegevens"], "<br>", $user_db["id_1"]["leeftijd"], "<br><br>"; //thomas
echo $user_db["id_2"]["naam"], "<br>", $user_db["id_2"]["gegevens"], "<br>", $user_db["id_2"]["leeftijd"], "<br><br>"; //david
echo $user_db["id_3"]["naam"], "<br>", $user_db["id_3"]["gegevens"], "<br>", $user_db["id_3"]["leeftijd"], "<br><br>"; //vincent
echo $user_db["id_4"]["naam"], "<br>", $user_db["id_4"]["gegevens"], "<br>", $user_db["id_4"]["leeftijd"], "<br><br>"; //veronique
?>
output:
Zoals ik al zij is een meerdimensionale array dus niet meer dan een array in een array (#1). Bij het opstellen van de array moet je dus volgende syntax gebruiken:
array_1 = array( key => array_2.1(), key => array_2.2(),..);
Voor de output zijn er 2 mogelijkheden; je kan voor elk gegeven
$array_1_name [ array_2.1_name ] ["key"] gebruiken, geen dollarteken dus bij de 'array_name' van de 'array_name'.
2
3
4
5
6
7
8
9
10
11
12
// definiëren van de arrays in een array #1
$user_db = array( "id_1" => array( 'naam' => 'thomas' , 'gegevens' => 'man' , 'leeftijd' => 18 ),
"id_2" => array( 'naam' => 'david' , 'gegevens' => 'man' , 'leeftijd' => 80 ),
"id_3" => array( 'naam' => 'vincent' , 'gegevens' => 'man' , 'leeftijd' => 3.5 ),
"id_4" => array( 'naam' => 'veronique' , 'gegevens' => 'vrouw' , 'leeftijd' => 30));
// output met for-loop
for ($i = 1; $i <= 4; $i++) {
echo $user_db['id_' . $i]["naam"], "<br>", $user_db['id_' . $i]["gegevens"], "<br>", $user_db['id_' . $i]["leeftijd"], "<br><br>";
}
?>
of je kan a.d.h.v. een for-loop de user_id invullen wat je heel wat code bespaard.
Dit voorbeeld maakt gebruik van de functie array_multisort (meer uitleg in laatste hoofdstuk). Het voordeel van deze manier is dat je als je een array toevoegt om er een drie-dimensionele array van te maken je geen 3 keer foreach met de output moet gebruiken.
Hopelijk is dit duidelijk genoeg anders geef je mij een seintje.
Inhoudsopgave
- Inleiding
- Controlestructuren met arrays
- Associatieve arrays koppelen met foreach
- Meerdimensionale of Multidimensionele arrays
- Arrays resetten / wijzigen / toevoegen
- Allerlei functies met arrays (uitgebreid)