Les 5

In deze les leert u wat een array is en hoe je verschillende waarden kan toekennen aan één variabele.

De arrays

Variabelen zijn mooi, maar wat als we nu meerdere waarden willen toekennen aan dezelfde variabele ? Wel in dit geval gebruiken we de arrays. Arrays worden ook wel lijsten genoemd. In tegenstelling tot andere talen, hoeven arrays niet op voorhand gedimensioneerd te worden, we maken arrays aan "on the fly" wanneer we er eentje nodig hebben. PHP kent associatieve arrays, wat totaal onbekend is in JavaScript en werkelijk uitzonderlijk is, maar daar komen we nog later op terug. Arrays hebben een korte notatie en een lange notatie. Hier gaan we dan.

Arrays in de lange notatie

Wat kunnen we nu in een array plaatsen ? Laten we eens beginnen met de dagen van de week. Per default, is de waarde van de index van de eerste array steeds 0, dus de computer begint te tellen vanaf 0 en niet zoals wij gewoon zijn vanaf 1. Niet vergeten, we tonen dit aan de hand van een voorbeeld . We openen onze editor en brengen volgende code in :

<?php
$dag[0]="Zondag";
$dag[1]="Maandag";
$dag[2]="Dinsdag";
$dag[3]="Woensdag";
$dag[4]="Donderdag";
$dag[5]="Vrijdag";
$dag[6]="Zaterdag";

// Alleen woensdag tonen

echo "$dag[3]";
?>

En we slaan dit script op als dagen1.php.

En aktie !

De dagen van de week worden normaal met kleine letters geschreven. Ik doe dit hier op deze manier, omdat ik het mooier vind. Pas het script zelf aan zoals jij wenst.
Als je dat nu in je browser bekijkt zal hij "Woensdag" tonen. Een week begint op zondag en eindigt op zaterdag. Dus is woensdag eigenlijk de vierde dag van de week, maar aangezien de computer van 0 telt, moeten we hier de waarde 3 toekennen, wat in feitelijk staat voor 4 als je begint te tellen vanaf 0.

Arrays in de korte notatie

We gaan nu terug de dagen van de week opnemen in een array, maar dit doen we ditmaal zo :

<?php
$dag=array("Zondag","Maandag","Dinsdag","Woensdag","Donderdag","Vrijdag","Zaterdag");

// De zondag afprinten

echo $dag[0];

?>

Sla deze code op als dagen2.php.

En aktie !

Als je dit nu in je browser ziet, print hij nu Zondag af. Dit is de schrijfwijze van arrays die ik steeds zal gebruiken, en wat mij betreft, wel de eenvoudigste  om te gebruiken.

Zoals je ziet moeten in de array alle velden tussen aanhalingstekens staan en moet ieder veld gescheiden zijn door middel van een komma.

Allemaal goed en wel, maar wat kunnen we nu doen met die array. Laten we even voorstellen dat je de bezoekers op je pagina wenst mede te delen welke dag het vandaag is. Wel met een array en een specifieke functie van PHP is dat perfect mogelijk. Die functie heet date. Ik zal nu even demonstreren hoe we dat doen, maar op de functie date komen we later nog uitgebreid op terug.

<?php

// bepalen welke dag we zijn vandaag
$vandaag=date("w");

$dag=array("Zondag","Maandag","Dinsdag","Woensdag","Donderdag","Vrijdag","Zaterdag");

echo " Vandaag zijn we $dag[$vandaag]<br>\n";
?>

En sla dit script op als dagen3.php.

En aktie !

In je browser, moet hij de dag tonen dat we vandaag zijn. Zoals je ziet maken we gebruik van de variabele $vandaag om te weten welke dag we zijn. De functie date("w") geeft hier een getal terug, dat overeenstemt met de dag van de week, beginnende met Zondag  als waarde 0. Dus in plaats van nu zelf een getal in te vullen tussen de haakjes, gebruiken we hier de waarde $vandaag.
Nu weten we dat de array $dag 7 elementen bevat. Maar we zullen dikwijls arrays dynamisch aanmaken, zonder op voorhand te weten hoeveel elementen die array zal bevatten. Wil je nu weten hoeveel elemeten een array bevat, dan heb je de functie count() ter beschikking.

<?php

// bepalen welke dag we zijn vandaag
$vandaag=date("w");

$dag=array("Zondag","Maandag","Dinsdag","Woensdag","Donderdag","Vrijdag","Zaterdag");

echo " Vandaag zijn we $dag[$vandaag]<br><br>\n";

$aantal_elementen=count($dag);

echo "Onze array \"\$dag\" bevat $aantal_elementen elementen, zijnde het aantal dagen  van de week <br>\n";
?>

En sla dit script op als count.php.

En aktie !

Ik maak hier een nieuwe variable aan nl $aantal_elementen en de waarde daarvan wordt mij geleverd door de functie count($dag) die het aantal elementen telt in de array $dag. Deze functie kan bijvoorbeeld handig zijn als je een array wilt aanmaken met gegevens uit een database, en je op voorhand niet weet hoeveel gegevens die database juist bevat.

Associatieve arrays of map

Nu wordt de index van een array altijd voorgesteld door middel van een getal. Associatieve arrays laten toe een element in de array te benaderen door middel van een sleutel die vrij door jouw te bepalen is. Opnieuw hebben we een korte en lange methode om die sleutels aan te maken.

De lange notatie van associatieve arrays.

We gaan dit terug demonstreren aan de hand van een voorbeeld :

<?php
$hoofdstad['DE']="Berlijn";
$hoofdstad['BE']="Brussel";
$hoofdstad['ES']="Madrid";
$hoofdstad['DK']="Kopenhagen";
$hoofdstad['FR']="Parijs";
$hoofdstad['GB']="London";

// De hoofdstad van België uitprinten

echo "De hoofdstad van België is $hoofdstad[BE]";
?>

Sla het script op als hoofdstad.php

Als je nu die pagina laadt in je browser zal hij netjes Brussel tonen. Ik wil hier een hoofdstad uitprinten, dewelke wordt bepaald, nu niet meer door een getal, maar door de sleutel "BE".

En aktie !

De korte notatie van associatieve arrays


<?php
$hoofdstad=array("DE"=>"Berlijn","BE" => "Brussel","ES" => "Madrid","DK" => "Kopenhagen","FR" => "Parijs","GB"
=> "London");

// De hoofdstad van Denemarken uitprinten

echo "De hoofdstad van Denemarken is $hoofdstad[DK]";
?>

En sla dit script op als hoofdsteden2.php

En aktie !

Regel 7 kan natuurlijk ook geschreven worden als :

echo "De hoofdstad van Denemarken is " .  $hoofdstad["DK"];

Of als volgt :

echo "De hoofdstad van Denemarken is " . $hoofdstad['DK'];

Maar NIET als volgt :

echo "De hoofdstad van Denemarken is $hoofdstad['DK'] ";

Waarom gaat dit niet werken ?


Wel PHP kent defined variables ( globale variabelen waar geen $ voorstaat ). Deze laatste schrijfwijze is enkel voorbehouden voor deze defined variabelen.



Eén van deze variabelen is de PHP_SELF variabele, waarop we nog uitvoerig terugkomen, aangezien we deze veelvuldig gaan gebruiken.

Dat associatieve arrays belangrijk zijn onder PHP zal ik later aantonen. PHP transformeert automatisch de waarden verkregen door formulieren in associatieve arrays. Dit zal duidelijk worden als we de formulieren behandelen, en dan zul je de associatieve arrays leren waarderen.


Les 1 Les 2 Les 3 Les 4 Les 5 Les 6 Les 7 Les 8 Les 9 Les 10 Les 11 Les 12 Les 13 Home