Arrays

Info 
Door: Mirax Moeilijkheidsgraad: 1/3
Views:19.566Reacties: 8(Bekijken)
  Log in om zelf te reageren
 Waardering:8/10 (5 stemmen)



Na het lezen van deze tutorial zal het hopelijk wat duidelijker zijn wat arrays zijn. 'Array' is een Engels woord, en in dit geval kun je deze misschien wel het best vertalen als 'verzameling'. Een array is namelijk niet anders dan een verzameling van bepaalde waarden (of: variabelen). Het heeft een heleboel voordelen om sommige waarden in een array op te slaan, en niet in bijvoorbeeld 20 verschillende variabelen.

Een array maken
Om aan te geven dat een bepaalde variabele een array is, kun je de volgende code gebruiken.

#Code
1
$namenlijst = array();

Vervolgens kan je verschillende elementen aan je verzameling (array) toevoegen. Er zijn een heleboel manieren, die eigenlijk hetzelfde effect hebben. Om bijvoorbeeld 'Jan' hieraan toe te voegen, kun je de volgende dingen doen, die allemaal hetzelfde effect hebben.

#Code
1
2
3
4
5
6
<?php
$namenlijst[] = 'Jan';
$namenlijst = array('Jan');
$namenlijst[0] = 'Jan';
array_push( $namenlijst , 'Jan' );
?>


De eerste is bijvoorbeeld handig, als je ergens op de pagina nog een element aan (het einde van) je array wilt toevoegen. De tweede manier wordt makkelijk als je veel elementen ineens wilt toevoegen aan je array, kijk maar:
#Code
1
$namenlijst = array('Jan','Nel','Karel','Jantien');

Als je nu de derde waarde uit de array wilt laten zien, dan kan je het volgende doen:
#Code
1
echo $namenlijst[2];

Waarbij de 2 aangeeft waar in de array het element zich bevindt, dit noemen we ook wel de 'key' (sleutel) die hoort bij de variabele, hier dus 'Karel'. Deze keys kunnen het gebruik van variabelen erg makkelijker maken.

Keys
Als je voor de rest geen keys opgeeft, wat we tot nu toe wel al stiekem een keer hadden gedaan (zie: $namenlijst[0] = 'Jan';), dan worden voor deze keys automatisch nummertjes gebruikt, oplopend en beginnend bij 0.
Soms is dit erg makkelijk (bijvoorbeeld, een array met de maanden van het jaar, en je wilt sommige data, die zijn opgeslagen als nummertjes, netjes weergeven), maar vaak is dat gewoon lastig. Daarom is het mooi dat je als key ook gewoon een woord kan gebruiken. Je kan de elementen weer een voor een opslaan in je verzameling:
#Code
1
2
3
4
5
6
<?php
$namenlijst = array();
$namenlijst['opa'] = 'Jan';
$namenlijst['oma'] = 'Nel';
// et cetera
?>

Maar het is natuurlijk veel makkelijker om alles op 1 regel neer te schrijven. Wat de tweede regel hier nu doet, zal wel duidelijkzijn.
#Code
1
2
3
4
<?php
$namenlijst = array( 'opa'=>'Jan', 'oma'=>'Nel', 'vader'=>'Karel', 'moeder'=>'Jantien');
echo $namenlijst['vader'];
?>


Handige functies bij arrays
We hebben hierboven al een functie gezien, die je bij arrays kunt gebruikt, namelijk array_push, die functie is niet zo bijzonder, maar sommige anderen kunnen wel heel handig zijn.

print_r
Met deze functie kun je makkelijk zien wat er precies in je array zit, voorbeeldje:
#Code
1
2
3
4
5
<?php
echo '<pre>';
print_r( $namenlijst );
echo '</pre>';
?>

Geeft:
#Code
1
2
3
4
5
6
7
Array
(
    [opa] => Jan
    [oma] => Nel
    [vader] => Karel
    [moeder] => Jantien
)


foreach
De foreach is een soort lus, die opvolgorde al je items in je array doorloopt, je kan hierbij rekening houden met de keys die je hebt toegekend, of niet.
#Code
1
2
3
4
5
6
7
8
9
10
11
12
<?php
// Zonder keys:
foreach( $namenlijst as $naam )
{
    
echo $naam . '<br />';
}
// Met keys:
foreach( $namenlijst as $band => $naam )
{
    
echo 'Mijn ' . $band . ' is ' . $naam . '<br />';
}
?>

De eerste geeft:
Jan
Nel
Karel
Jantien
En de tweede:
Mijn opa is Jan
Mijn oma is Nel
Mijn vader is Karel
Mijn moeder is Jantien
Dit geeft ook meteen aan wat de kracht is van keys.

count
Met de countfunctie kun je het aantal element in je array tellen. Dus.
#Code
1
2
$aantal_familieleden = count( $namenlijst );
echo 'Ik heb ' . $aantal_familieleden . ' familieleden.';

Count() kan, in combinatie met de for()-loop, ook handig zijn als je op een alternatieve manier een array wilt doorlopen.

Er zijn nog veel meer standaardfuncties die je kunt toepassen op je array. Bekijk ook eens deze pagina over arrayfuncties op php.net. Zeker de moeite waarde om eens door te nemen.

Multidimensionele arrays
Het is ook mogelijk om een array op te slaan in een array, dit noemen we dan een multidimensionele array. Het principe is heel simpel.

Je kan hem als volgt aanmaken:
#Code
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$dieren = array();
$dieren['aap'] = array( 'gorilla', 'baviaan' , 'orang oetang' );
$dieren['kat'] = array( 'leeuw' , 'tijger', 'panter' , 'huiskat' );
$dieren['vogel'] = array( 'kanarie' , 'mus' , 'uil' );

// Of:
$dieren = array(
    
'aap' => array( 'gorilla', 'baviaan' , 'orang oetang' ) ,
    
'kat' => array( 'leeuw' , 'tijger', 'panter' , 'huiskat' ) ,
    
'vogel' => array( 'kanarie' , 'mus' , 'uil' ) );
?>


De functie print_r geeft dan:
#Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Array
(
    [aap] => Array
        (
            [0] => gorilla
            [1] => baviaan
            [2] => orang oetang
        )

    [kat] => Array
        (
            [0] => leeuw
            [1] => tijger
            [2] => panter
            [3] => huiskat
        )

    [vogel] => Array
        (
            [0] => kanarie
            [1] => mus
            [2] => uil
        )

)


En foreach werkt ook heel makkelijk:
#Code
1
2
3
4
5
6
7
8
9
10
11
<?php
foreach( $dieren as $soort => $soort_array )
{
    
echo 'Van het soort ' . $soort . ' zijn er deze dieren: <br />';
    
foreach( $soort_array as $subsoort )
    
{
        
echo $subsoort . '<br />';
    
}
    
echo '<br />';
}
?>


En je kan natuurlijk ook een array in een array in een array in een array plaatsen, het principe blijft hetzelfde.

Ik hoop dat deze tutorial je wat beter inzicht geeft in hoe arrays precies werken, de toepassing bedenken is aan jou zelf!

8 reacties
dj170590 Geplaatst op 30-04-2008 om 21:28
 

Regular
Ja bedankt voor de zeer goede uitleg :)
ThePlague Geplaatst op 22-05-2007 om 16:43
 

Regular
mooie tutorial ik snap het nu (ongeveer :p)
Mirax Geplaatst op 01-05-2006 om 10:45
 

Moderator
Bedankt voor de tip, zal het even aanpassen.
kokx Geplaatst op 25-04-2006 om 15:39
 

Nieuwsposter
Gooi even overal <?php en ?> bij, met kleurtjes leest het iets makkelijker.
Itsme-HcK Geplaatst op 06-02-2006 om 20:46
Avatar van Itsme-HcK

Regular
En niet voor de belediging? :P

Pagina 1 2 

Om te reageren moet je ingelogd zijn.
Nog niet geregistreerd? Doe dat dan nu!


Terug naar gewone pagina

Websitemaken wordt gehost door Nucleus.be, uw Hosting Solution Builder