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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
32
33
<?php
// 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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
thomas
man
18

ect,..


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'.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
// 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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
$multi_array
= array (1 => array ( 'thomas', 'david', 'veronique'), 2 => array ( 70, 30, 120) );
$num = count ($multi_array);
echo $num, '<br><br>';
for ($i = 1 ; $i <= $num ; $i++){
    foreach ($multi_array[$i] as $key => $value) {
        echo $key, ': ', $value, '<br>';
    }
    
    echo '<br>';
}

?>


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.

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Inleiding
  2. Controlestructuren met arrays
  3. Associatieve arrays koppelen met foreach
  4. Meerdimensionale of Multidimensionele arrays
  5. Arrays resetten / wijzigen / toevoegen
  6. Allerlei functies met arrays (uitgebreid)

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.