Skip to main content

Assiociative Arrays

Je gaat leren wat een assiociative array is en hoe je de inhoud hiervan kunt afdrukken in een tabel.

Associative arrays zijn belanrijk want resultaten van een query uit de database worden door PDO vaak als associcative array terug gegeven. Hier gaan we later (in PHP PDO) ook mee oefenen. Ook zal dit terug komen in Laravel.

We hebben in de vorige les 'gewone' arrays gezien, een 'gewoon' array kun je aanspreken via bijvoorbeeld:

$array[0]

Dit is het eerste element van het $array. De 0 is de index, dat geeft aan welk element je aanspreekt.

Bij een associative array heb je ook een index, maar de index is geen nummer maar een naam, we noemen dat een sleutel. Bijvoorbeeld:

$array['PHP']

Dit is het element in het $array met de index 'PHP'. De index in een assiociative array wordt ook wel key genoemd.

Een index in een 'gewoon' array heet key in een assiociative array.

We kunnen op deze manier een heel array opbouwen, bijvoorbeeld:

<?php

$array['PHP']=5.5;
$array['Java']=6.5;
$array['Engels']=7.0;
$array['Nederlands']=6.5;
$array['Veilig Programmeren']=8.0;

Dit zouden bijvoorbeeld de cijfers voor de verschillende vakken kunnen zijn.

Deze kun je ook op een andere manier toekennen:

<?php

$array=array("PHP" => 5.5, "Java"=>6.5, ....);

Vraag 1: Maak nu de onderstaande code af zodat alle vakken, PHP, Java, Engels, Nederlands, en Veilig programmeren allemaal afgedrukt worden.

<?php    

$array=array("PHP" => 5.5, "Java"=>6.5, MAAK HIER DE CODE AF);

echo "PHP:" . $array["PHP"]."<br>";  
echo "Java:". $array["Java"]."<br>";
MAAK HIER DE CODE AF
  
?>  

Nu werkt dit best een beetje onhandig want je zou deze vakken het liefst in een loop afdrukken. Net zoals de tafels die we in de vorige hoofdstukken in een loop maakte.

Maar we kunnen ook door een associative array met een loop. Hoe werkt dat?

De standaard manier is als volgt:

<?php
foreach ($array as $key => $value) {
	....
}

In dit voorbeeld is $array het assiociative array, en is $key de key (zeg maar de index) en $value de waarde.

Opdracht 1

We hebben code gemaakt die het volgende afdrukte:

PHP:5.5
Java:6.5
Engels:7.0
Nederlands:6.5
Veilig Programmeren:8.0

Verander deze code zodat deze met de loop foreach ($array as $key => $value)werkt en zodat de code in een tabel wordt afgedrukt. Dus ongeveer zo:

VakCijfer
PHP5.5
Engels7.0
Nederlands6.5
Veilig Programmeren8.0

--