Een overzicht van alle mogelijke functies vind je hier: http://be.php.net/manual/en/book.array.php.
Hieruit halen we de volgende handige functies:
Om een idee te krijgen wat er in een array zit, kunnen we, naar analogie met de print-functie, de print_r()-functie gebruiken. Deze geeft weer wat er exact in een array zit. De output die dit oplevert is niet geschikt om te gebruiken in een uiteindelijke website, maar kan wel gebruikt worden, om tijdelijk de resultaten tijdens het ontwikkelen weer te geven.
De meest eenvoudige functie is sort(). Deze functie sorteert alle elementen van een array in oplopende volgorde (van klein naar groot, alfabetisch). De nieuwe array wordt opgeslagen in de oorspronkelijke array. De oorspronkelijke inhoud gaat dus verloren! Een voorbeeld om dit te illustreren:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Arrays</title>
</head>
<body>
<?php $groenten = array('sla', 'wortelen', 'aardappelen', 'ajuin'); ?>
<pre>Ongesorteerde groenten:
<?php print_r($groenten); ?>
</pre>
<?php sort($groenten); ?>
<pre>Gesorteerde groeten:
<?php print_r($groenten); ?>
</pre>
</body>
</html>
Hier wordt print_r() gebruikt om de inhoud van de array af te drukken, eenmaal niet gesorteerd, eenmaal wel gesorteerd.
De tag <pre></pre> zorgt ervoor dat de uitvoer in de browser netjes weergegeven wordt. Deze wordt afgeraden om te gebruiken in je uiteindelijke script.
Bij het aanmaken van de nieuwe array, komt "aardappelen" op positie 0 te staan, "ajuin" op 1, ... Als je gebruik maakt van een associatieve array, dan gaan de oorspronkelijke sleutels ook verloren.
rsort() zal onze tabel omgekeerd sorteren.
Met asort() worden de keys (sleutels) bij de values (waarden) gehouden.
<?php
$fruit = array(
'citroen' => 'geel',
'sinaasappel' => 'oranje',
'banaan' => 'geel',
'appel' => 'groen'
);
?>
<pre>Ongesorteerd fruit:
<?php print_r($fruit); ?></pre>
<?php asort($fruit); ?>
<pre>Op kleur gesorteerd fruit:
<?php print_r($fruit); ?></pre>
M.a.w. de array wordt gesorteerd op de waarden en de associatieve sleutels blijven bij de overeenkomstige waarden staan.
arsort() zal hetzelfde doen als asort, maar in omgekeerde volgorde.
Je kan ook sorteren op de key (sleutel), terwijl de waarde bij de betreffende key (sleutel) blijft met ksort() of omgekeerd met krsort().
<?php ksort($fruit); ?>
<pre>Op naam gesorteerd fruit:
<?php print_r($fruit); ?></pre>
Kunnen we met de zelfverklarende functie count():
<p>De array $fruit bevat <?php print count($fruit); ?> elementen, de array $groenten bevat <?php print count($groenten); ?> elementen.</p>
Count() geeft een getal terug die het aantal elementen aangeeft, of 0 indien de array leeg is of niet bestaat, controleer dus eerst met de functie is_array() om zeker te zijn van het resultaat.
Als je een array hebt waar een aantal elementen meerdere malen in voorkomen, en je wilt weten hoeveel maal elk element voorkomt, gebruiken we array_count_values(). Deze functie geeft een array terug met enkel de waarden van de oude array als nieuwe sleutel, en het aantal maal dat deze voorkomt als nieuwe waarde:
<?php
$huisdieren = array(
"Dirk" => "hond",
"Sophie" => "paard",
"Ingrid" => "eekhoorn",
"Lucie" => "paard",
"Bart" => "hond"
);
$aantal_huisdieren = array_count_values($huisdieren);
?>
<p><?php print $aantal_huisdieren["hond"]; ?> personen hebben als huisdier een hond.</p>
Het kan voorkomen dat je een string hebt, die je wilt opslaan als een array. Hiervoor kunnen we de functie explode() gebruiken:
<?php
$zin = "De woorden in deze zin kan je met een array eenvoudiger bewerken.";
$woordarray = explode (" ", $zin);
?>
<p><?php print $zin; ?></p>
<pre>Bovenstaande zin bevat de volgende woorden:
<?php print_r($woordarray); ?></pre>
De explode functie splitst de zin in verschillende array-elementen, daarbij wordt een spatie als scheidingsteken tussen de verschillende woorden (array-elementen) gebruikt.
Omgekeerd kan ook met implode():
<?php
$mijnhuisdieren = array("hond", "kat", "parkiet", "goudvis");
$huisdieren_string = implode (", ", $mijnhuisdieren);
?>
<p>Ik heb <?php print count($mijnhuisdieren); ?> huisdieren: <?php print $huisdieren_string ?>.</p>
De functie join() heeft hetzelfde resultaat.
Het maximum en het minimum zijn te vinden met max() en min():
<?php $meetwaarden = array(1, 56, -5, 16); ?>
<p>De meetwaarden <?php print implode (", ", $meetwaarden); ?> variëren tussen het maximum <?php print max($meetwaarden); ?> en het minimum <?php print min($meetwaarden); ?>.</p>
Met in_array() kunnen we zoeken of een bepaalde waarde voorkomt in de array:
<?php if(in_array(1, $meetwaarden)): ?>
<p>De meetwaarden bevatten de waarde 1.</p>
<?php elseif(in_array(10, $meetwaarden)): ?>
<p>De meetwaarden bevatten de waarde 10.</p>
<?php endif; ?>
Met de functie array_key_exists(): controleer je of een bepaalde sleutel in een array voorkomt:
<?php if(array_key_exists("Bart", $huisdieren)): ?>
<p>Bart heeft als huisdier een <?php print $huisdieren['Bart']; ?>.</p>
<?php else: ?>
<p>Bart heeft geen huisdier.<p>
<?php endif; ?>
De sleutels haal je uit een array met array_keys():
<?php $eigenaars = array_keys($huisdieren); ?>
<p>De huisdieren hebben de volgende baasjes: <?php print implode (", ", $eigenaars); ?>.</p>
Om enkel de waarden over te houden gebruiken we array_values(), die een nieuwe array oplevert, met enkel de waarden, zonder de associatieve sleutels.
Een array met enkel de unieke waarden halen we op met array_unique().
Weergeven