Cursussen/Courses Codesnippets     Top 
PHP - Array's


1. Opbouw
Om een lijst met waarden te gebruiken in een programma kan je die waarden in een array stoppen.
Elke waarde wordt aangeduid door de array naam en een index of sleutel.
De index kan een getal of een tekenreeks zijn en wordt tussen blokhaakjes gezet ([ ]).
In het geheugen van de computer wordt voor elke waarde een geheugenplaats gereserveerd.
<?php
$dagnamen = array("maandag", "dinsdag", "woensdag","donderdag","vrijdag","zaterdag","zondag");
echo $dagnamen[0];	// eerste item van de array dagnamen (index begint bij 0)
echo "<br>";
echo $dagnamen[4];	// vijfde item wordt getoond


2. Gebruik
Je kan een array initialiseren met de functie array(). Er wordt dan een lege array gemaakt.
Bij het invullen kan je een getal als index nemen. Je zet het array item gelijk aan een waarde door de naam van de array te schrijven, dan blokhaakjes te gebruiken om de index tussen te plaatsen en dan achter het gelijkheidsteken de inhoud te typen.
Met een For-lus of een foreach-lus kan je de items van de array overlopen en de index en inhoud tonen of verder gebruiken in jouw programma.
Als je de array invult met als index een woord dan gebruik je tussen de index en de inhoud een pijltje (=> een combinatie van een is gelijk aan teken en een groter dan teken).
Je kan als inhoud ook een array gebruiken en zo een array van array's samenstellen. Elke array kan dan ook nog eens op zijn beurt een array van array's zijn. Je gebruikt voor elke array een lus om alle gegevens te kunnen ophalen, tonen of gebruiken.
Enkele voorbeelden:
<?php
// eenvoudige lijst
$talen = array();
$talen[0] = "Nederlands";
$talen[1] = "Frans";
$talen[2] = "Engels";
for ($i = 0 ; $i < count($talen) ; $i++) {
	echo "index = " . $i . " inhoud = " . $talen[$i] . "<br>";
}
echo "<br>";
?>
<style>
table, tr, td, th {
	padding: 2px;
	border:1px solid blue;
	border-collapse:collapse;
}
th {
	background-color: yellow;
	color: black;
}
</style>
<table>
<tr>
	<th>fruitnaam</th><th>naam</th><th>kleur</th>
</tr>
<?php
// 2 array's
$appels = array(
			array("naam"=>"jonagold","kleur"=> "rood"),
			array("naam"=>"golden delicious","kleur"=> "geel"));
$bananen = array(
			array("naam"=>"chiquita","kleur"=> "geel"),
			array("naam"=>"rode banaan","kleur"=> "rood"));
// een array van array's
$fruit = array("appels"=>$appels,"bananen"=>$bananen);
foreach($fruit as $index => $item) {
	foreach($item as $sleutel => $waarde) {
		echo "<tr>";
		echo "<td>" . $index . "</td>";
		foreach($waarde as $key => $value) {
			echo "<td>" . $value ."</td>";
		}
		echo "</tr>";
	}
}
?>
</table>


3. Functies
Je kan standaard PHP-functies gebruiken met array's.
Met de functie count() tel je het aantal items in de array (zie eenvoudige lijst in vorige paragraaf).
Je kunt twee arrays samenvoegen met de functie array_merge().
Het sorteren van elementen van een array kan met een sorteerfunctie sort() uitgevoerd worden.
Met de functie in_array() kan je controleren of een waarde als inhoud in de array aanwezig is.
Met de functie array_key_exists() kan je nagaan of een sleutelwaarde aanwezig is in de array.
echo "<br>";
if (in_array("granny smith",$appels)) {
	echo "er is een granny smith in de appels array!<br>";
} else {
	echo "er is GEEN granny smith in de appels array!<br>";	
}
if (array_key_exists("bananen",$fruit)) {
	echo "er is een bananen array in de fruit array<br>";
} else {
	echo "er is GEEN bananen array in de fruit array<br>";	
}


4. Multidimensionaal
Je kan in een array meerdere niveau's instellen door achter de array naam meerdere indexen tussen blokhaakjes te plaatsen.
Hierdoor kan je bv. een matrix samenstellen.
In het onderstaande voorbeeld wordt voor elk woord een vertaling in een andere taal bijgehouden.
<?php
$woorden["stoel"]["Frans"]  = "chaise";
$woorden["stoel"]["Engels"]  = "chair";
$woorden["chaise"]["Nederlands"]  = "stoel";
$woorden["chaise"]["Engels"]  = "chair";
$woorden["chair"]["Frans"]  = "chaise";
$woorden["chair"]["Nederlands"]  = "stoel";
// vertaling van chaise in het Engels
echo "vertaling van chaise = " . $woorden["chaise"]["Engels"] . "<br>";
// zoeken naar vertaling van tafel in het Engels
if (isset($woorden["tafel"]["Engels"])) {
	echo "zoeken naar vertaling van tafel: " .$woorden["tafel"]["Engels"];
} else {
	echo "zoeken naar vertaling van tafel: " . " niet gevonden";
}