web2 logo

Arrays in php

In php is het eenvoudigste type array een array die voor de index integers gebruikt, standaard start het tellen van de index bij 0. Een array kan ook strings als index gebruiken (associatieve array).
Je kan een array maken met daar meteen de gewenste elementen in, of je kan eerst een lege array maken en daar elementen aan toevoegen.
Voorbeelden:
$gebruikers = array('Jan','Piet','Marie'); $resultaten = array(); $resultaten[0] = 12; $resultaten[1] = 14; $resultaten[2] = 10; $resultaten[3] = 11; // Element toevoegen aan het einde van de array: $resultaten[] = 15; // Dit element krijgt nu automatisch index 4.

Een element vervangen in een array

Een element van een array kan je een nieuwe waarde geven door deze toe te wijzen aan het reeds bestaande element.
Voorbeeld:
$resultaten[0] = 16; // het eerste element van de array was 12, wordt nu 16.

De waarde van een element van een array opvragen

Je vraagt de waarde van een element van een array op door de index mee te geven:
echo $resultaten[1]; // dit geeft 14 Als het element nog niet bestaat, dan ktijg je NULL terug.

Elementen verwijderen uit een array

Elementen verwijderen uit een array kan met de unset() functie. Het element geeft dan NULL als het wordt opgevraagd. $letters = array('a', 'b', 'c', 'd'); unset($letters[2]); // array is nu: a, b, NULL, d De hele array leeg maken kan ook met de unset() functie: unset($letters);

Arrays herindexeren

Als je elementen verwijdert uit een array, dan ontstaan er gaten in de index van de array. Dit kan je oplossen door de array te herindexeren met de functie array_values().
$letters = array_values($letters); // array is nu: a, b, d

Array elementen gebruiken in strings via vervanging

In strings die voorzien zijn van dubbele quotes, kan je variabelen gebruiken die dan door hun waarden vervangen worden (variable substitution). Dat kan ook met array elementen, om te laten zien dat de index bij de array variabele hoort en niet bij de rest van de string, kan je deze tussen gekrulde haken plaatsen:
$gebruikers = array('Jan', 'Piet', 'Marie'); echo "Ingelogd: $gebruikers[0]"; echo "Ingelogd: {$gebruikers[0]}"; Als je gekrulde haken gebruikt, dan moet het dollarteken dat de variabele aangeeft ook binnen de gekrulde haken staan.

Arrays gebruiken in for loops

Een array wil je meestal in een loop gebruiken om alle elementen af te lopen.
Een aantal php functies is hierbij handig:

isset($var)
Geeft TRUE als de variabele of het array element, aangegeven in $var, bestaat, anders FALSE.

key($array)
Geeft de index van het element waar de cursor van de array nu staat.

end($array)
Verplaatst de cursor naar het laatste element van de array.

Voorbeeld:
$nummers = array(); for ($i = 0; $i < 9; $i++) { $nummers[] = mt_rand(0, 20); echo $i+1 . ' -- ' . $nummers[$i] . 'br'; }

Het aantal elementen in een array

Als je wilt weten hoeveel elementen er in een array zitten, dan kan je count() gebruiken:
$kleuren=array("rood","blauw","groen"); echo count($kleuren);
Het resultaat van het bovenstaande voorbeeld is 3.
 
Als je een array hebt die zelf ook weer arrays als elementen bevat, een multidimensionale array dus, dan kan de je de parameter COUNT_RECURSIVE toevoegen, je krijgt dan het aantal elementen inclusief de elementen op diepere niveau's:
$kleuren=array("rood","blauw",array("groen","geel")); echo count($kleuren,COUNT_RECURSIVE); Het resultaat van het bovenstaande voorbeeld is 5, wat je misschien niet had verwacht:
Dat zijn 3 elementen op het eerste niveau: rood, blauw en de array. En 2 elementen op het volgende niveau: groen en geel.

Associatieve arrays

Een associatieve array is een array die strings voor de index gebruikt in plaats van nummers. Deze strings worden sleutels genoemd. Asscociatieve arrays kunnen op dezelfde manier worden aangemaakt en gebruikt als numerieke arrays. Arrays mogen ook een gemengde index hebben, dus zowel elementen met een numerieke index als elementen met een string index. Als bij het toevoegen van een element geen index meegeeft, dan geeft php dat element een numerieke index.
Meerdere elementen in 1 keer toevoegen:
$hoofdsteden = array('NL' => 'Amsterdam', 'DE' => 'Berlijn', 'BE' => 'Brussel', 'FR' => 'Parijs'); In meerdere stappen:
$hoofdsteden = array(); $hoofdsteden['NL'] = 'Amsterdam'; $hoofdsteden['DE'] = 'Berlijn'; $hoofdsteden['BE'] = 'Brussel'; $hoofdsteden['FR'] = 'Parijs';

Associatieve arrays in strings via vervanging

Als je een array element met een string als sleutel in een string met dubbele quotes gebruikt, dan moet je opletten op de quotes rond de sleutel:
echo "Dit is het boek van $naam['gebruiker1']"; // dit geeft een fout echo "Dit is het boek van $naam[gebruiker1]"; // dit gaat goed: geen quotes rond de sleutel echo "Dit is het boek van {$naam['gebruiker1']}"; // wel quotes rond de sleutel gebruiken als er gekrulde haken staan

Arrays gebruiken met foreach loops

Foreach loops zijn zeer geschikt voor associatieve arrays omdat deze loops alle elementen afgaan zonder dat je zelf moet gaan bijhouden waar de cursor was gebleven of hoeveel elementen er in de array zitten.
Er zijn twee varianten van foreach:
foreach ($array as $waarde) expressie
foreach ($array as $sleutel => $waarde) expressie
 
Voorbeeld:
$maand = array(1 => "januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"); foreach ($maand as $maandnummer => $maandnaam) {    echo $maandnummer . " = " . $maandnaam . "br"; }

Toegevoegd door: Kees de Keijzer
Twitter: @kdkq

~ php ~

~ Onderwerpen ~

Dit is een website zonder pop-ups

~ Links ~

Design & Development by Cyberwebdesign.nl for web2.nl © 2020.