PHP Tutorial.nl

Word een PHP expert!!!

Home » Arrays

Arrays: Ga direct aan de slag met datastructuren

Een van de datatypen die ik eerder benoemde was een array. Dit datatype is een verzameling verschillende waardes. Dit kan dus ook een verzameling van meerdere arrays zijn (om het makkelijker te maken).

Wat zijn arrays in PHP?

Arrays in PHP zijn een type datastructuur waarmee je meerdere waarden in één variabele kunt opslaan. Arrays kunnen zowel numerieke indexen als associatieve sleutels gebruiken om elementen te ordenen. Dit maakt arrays veelzijdig en krachtig voor het opslaan en manipuleren van lijsten met gegevens. Een array kan eenvoudige waarden zoals strings en getallen bevatten, maar ook complexere structuren zoals andere arrays, waardoor je multidimensionale arrays kunt creëren. Arrays zijn essentieel voor het efficiënt beheren van data in PHP.

De syntax van array

De syntax van array is array(...) maar het mag ook gedefinieerd worden met blokhaken [...]

<?php
$array = array( 'waarde1', 'waarde2', 'waarde3' );
$array2 = [ 'waarde1', 'waarde2', 'waarde3' ]; // Dit mag ook.
?>

In het bovenstaande voorbeeld bestaat de array uit drie waarden. Onder water heeft PHP aan elke array een identifier toegekend. Deze identifier staat ook wel bekend als de key (sleutel). Als je een array op deze manier schrijft, dan zullen de sleutels numeriek zijn. 

Je zou verwachten dat ‘waarde1’ de key 1 toegekend krijgt. Helaas, in numerieke arrays begint het altijd met 0. Dus key 0 is waarde1, key 1 is waarde2 en key 2 is waarde3. Als we nu een waarde4 willen toevoegen, dan doen we het volgende:

<?php
$array[] = "waarde4";
?>

PHP zelf weet dat de key 3 nog vrij is en zal deze daarom automatisch toekennen aan waarde4.

Associatieve arrays

In het voorbeeld hierboven ga ik al aan dat een array altijd per waarde een identifier (ofwel sleutel ofwel key) genoemd heeft. Als we deze niet zelf toekennen, dan wordt er dus een numerieke key toegekend.

We kunnen het dus ook zelf toekennen:

<?php
$persoon = array(
    'naam' => 'Andy',
    'geslacht' => 'man',
);
?>

In het voorbeeld hierboven heb ik een variabele gemaakt met daarin een waarde van het datatype array. Deze heeft een key naam en geslacht. Als ik een bepaalde key wil benaderen dan kan ik het volgende doen:

<?php
echo $persoon['naam'];
?>

Geneste (multi-dimensionele) arrays

Het is ook mogelijk om een array in een array te gebruiken. Op deze manier is het mogelijk om een diepgaande datastructuur op te zetten.

<?php
$persoon = array(
    'naam' => 'Andy',
    'geslacht' => 'man',
    'interesses' => array(
        'muziek luisteren',
        'films kijken',
        'hout bewerken'
    )
);
?>

In het bovenstaande voorbeeld bestaat de key interesses uit een array met daarin de losse waardes. Dit is een voorbeeld ben een geneste array.

Het uitlezen van een array

Door middel van een lus (ook wel loop genoemd) is het mogelijk om een array uit te lezen. Een goed voorbeeld van zo’n lus is de foreach.

<?php
$array = array( 'een' => 'waarde1', 'twee' => 'waarde2', 'drie' => 'waarde3' );
foreach ( $array as $key => $value ) {
   echo $key . ':' . $value . ' - ';
}   
?>

Zo krijgen we het volgende te zien: een: waarde1 – twee: waarde2 – drie: waarde3 –

Array Functies

PHP biedt een rijkdom aan ingebouwde functies voor arrays. Deze functies helpen je om arrays efficiënt te manipuleren zonder zelf loops te hoeven schrijven. Hier zijn enkele veelgebruikte:

<?php
$array = [1, 2, 3, 4, 5];

// array_map
$squared = array_map(fn($n) => $n * $n, $array);
print_r($squared); // Output: [1, 4, 9, 16, 25]

// array_filter
$even = array_filter($array, fn($n) => $n % 2 === 0);
print_r($even); // Output: [2, 4]
?>`

Het sorteren van arrays

Soms wil je een array sorteren op een bepaalde volgorde. Gelukkig biedt PHP verschillende functies om arrays te sorteren:

  • sort: Sorteert een array in oplopende volgorde.
  • asort: Sorteert een associatieve array op waarde in oplopende volgorde.
  • ksort: Sorteert een associatieve array op sleutel in oplopende volgorde.
  • usort: Sorteert een array door een gebruikersfunctie te gebruiken.

Array destructuring

Array destructuring, geïntroduceerd in PHP 7.1, maakt het mogelijk om arrays in afzonderlijke variabelen te ontleden.

<?php
$data = ["John", "Doe", 30];
[$voornaam, $achternaam, $leeftijd] = $data;

echo $voornaam; // Output: John
echo $achternaam; // Output: Doe
echo $leeftijd; // Output: 30
?>

Maak kennis met de spread operator

De spread operator is een krachtige tool in PHP waarmee je elementen van een array kunt uitpakken en samenvoegen. Dit maakt je code leesbaarder en flexibeler.

$array1 = [1, 2, 3];
$array2 = [4, 5, 6];
$gecombineerd = [...$array1, ...$array2];
print_r($gecombineerd); // Output: Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 )

Met de spread operator kun je arrays elegant combineren zonder expliciete loops of array-functies.