Skip to main content

Arrays

Arrays

Een array is een type variable waarin meerdere gegevens zitten. Een array bestaat uit elementen. Elk element is eigenlijk een aparte variabele. Het eerste element is element 0,0, het tweede element is element 1, ....en het 10de element is element 9. In een array mag je verschillende datatypes door elkaar gebruiken. Je kunt een array op veschillende manieren declareren.

Arrays worden veel gebruikt. Als resultaten uit een database worden gehaald kunnen die in een array worden gezet.

<?php
$arrayA = [1,2,3,4,5,'a'];
$arrayB = array(1,2,3,4,5,'a');
?>

Je kunt een array element gebruiken door de array variabele met een index: $arrayA[0], of $arrayA[1]

Er zijn veel PHP functies die iets met een array doen, een paar voorbeelden

count($array) return het aantal array elementen.
array_shift($array) return het eerste element uit het array en haal die eruit.
array_pop($array) return het laatste element uit het array en haal die eruit.
array_push($array, ....) voeg een of meer alementen toe aan het eind van het $array.
in_array('abc', $array) Zoek of 'abc' in het array staat.
Opdracht

Wat doet de volgende code? Voorspel eerst welke vier maanden er gaan worden afgedrukt en controleer het dan of dat inderdaad zo is.

<?php
$maanden = array ('Januari', 'Februari', 'Maart', 'April', 'Mei', 'Juni', 'Juli', 'Augustus','September', 'Oktober', 'November', 'December');

echo $maanden[1];
echo $maanden[count($maanden)-1];
echo array_shift($maanden);
echo array_shift($maanden);
?>

AssociativeArrays van Arrays

Zoals uitgelegd kan er van alles in een array zitten; integers, strings, maar ook arrays. Een element van een arrays kan dus op zich zelf weer arrays zijn. Hoe werkt dat?

Stel je hebt vier arrays; $zomer, $herfst, $winter en $lente. Wat er in deze arrays staat is eigenlijk niet zo van belang. Stel we willen een nieuw array maken waarin deze vier arrays staan, dan kan dat als volgt:

$jaar_2014=[ $zomer, $herfst, $winter, $lente ]

In elke element zit nu een array want de variable $zomer $hefst, $winter en $lente zijn immers op zichzelf allen ook een array.

Stel we hebben een aantal jaren op deze manier gedefinieerd dus $jaar_2010 en $jaar_2011 zijn allen arrays met elk vier arrays. Nu kunnen we deze jaren op zichzelf ook weer in een array zetten:

$jaren = [ $jaar_2010, $jaar_2011 ];

We hebben nu een array van een array van een array. Drie arrays in elkaar.

We hebben het nog niet gehad maar er in het array $zomer, $herfst, $winter en $lente staan telkens 3 getallen die de gemiddelde temeratuur van de betreffende maand voorstellen.

Dus we hebben een array met 5 jaren en elk jaar is een array met vier seizoenen en elk seizoen heeft vier temperaturen.

Schematisch:

Jaar arraySeizoenTemperatuur
2010zomer[ 21, 22, 24, 20]
 herfst[20,19,19,17]
 winter[15,12,8,5]
 lente[7,10,18,18]
2011zomer[ 20, 22, 23, 20]
 herfst[20,19,21,17]
 winter[15,12,9,8]
 lente

[7,10,14,18]

etc. etc.   
Opdracht

Maak dit beschreven $jaren array in PHP.

Als je dit array hebt gemaakt en je wilt de temperatuur uit de eerste maand van de winter uit 2010 weten, hoe doe je dit?

Er zijn twee manieren:

Allereerst kun je een arrays uit het array halen, met

$ditjaar = $jaren[0]

$ditjaar heeft nu de waarde van het eerste element van $jaren en dat is jaar 2010. Nu willen we de winter hebben:

$ditseizoen = $ditjaar[2]

$ditseizoen wordt nu gevuld met het 3de element van het array $ditjaar (en $ditjaar was 2010).

Als laatste kunnen we nu de temperatuur van de eerste maand uit de winter halen:

$temperatuur = $ditseizoen[0]

Je kan het ook in één stap doen en dat is de tweede manier:

$jaren[0][2][0]

Herken je de nummers? Wat hier staat is: neem uit het array jaren het 1ste element en daarvan het 3de element en daarvan het 1ste element.

Oefeningen Arrays

  1. Hoe druk je het 2de element af van het array $myArray=[10,20,30,40,50,60] ?
  2. Wat is de waarde van het 1ste element van het array $myArray=[1,2,3,4,5,6,7] ?
  3. Wat wordt er afgedrukt echo count([1,2,3]) ?
  4. Hoe druk je het laatste element af van het array myArray=[1,2,3,4,5] ?