Auf der Startseite eines Webshop kann der Benutzer nach Produkten suchen. Das Suchergebnis kommt als Array aus der Datenbank. Auf der Webseite möchte man aus optischen Gründen nicht eine einfache Liste darstellen, sondern beispielsweise immer 4 Artikeln je Zeile.
Um diese Aufgabe zu realisieren, kann man das Array mit den Suchergebnissen in kleinere Arrays zerlegen und auf der Webseite ausgeben. Zum Zerlegen eines Arrays ist die Funktion array_chunk() geeignet. Eine weitere Anwendungsmöglichkeit wäre die Auflistung eines Inhaltverzeichnisses für eine Astronomie-Webseite.
Der Syntax:
Array = array_chunk (Eingabearray, Array Groesse, [Keys Erhalten])
Beispiel:
<?php
$array = array('sone', 'mond', 'sterne');
echo 'Ausgabe ohne optionalen Parameter Keys Erhalten<br>';
print_r(array_chunk($array, 2));
echo 'Ausgabe mit optionalen Parameter Keys Erhalten = True<br>';
print_r(array_chunk($array, 2, true));
?>
Ausgabe:
Ausgabe ohne optionalen Parameter Keys Erhalten
Array
(
[0] => Array
(
[0] => sone
[1] => mond
)
[1] => Array
(
[0] => sterne
)
)
Ausgabe mit optionalen Parameter Keys Erhalten = True
Array
(
[0] => Array
(
[0] => sone
[1] => mond
)
[1] => Array
(
[2] => sterne
)
)
Das Beispiel beginnt mit dem Erzeugen eines Arrays, dass eine Liste von astronomischen Objekten Kategorien (Sonne, Mond und Sterne) enthält. In der zweiten Zeile wird die Funktion ohne optionalen Parameter Keys Erhalten aufgerufen. D.h. jeder Key im neuen zerlegten Array startet bei 0. Da der Parameter Array Groesse den Wert 2 hat, haben die zerlegten Arrays maximal 2 Elemente.
In der dritten Zeile wird der optionale Parameter Keys Erhalten auf True gesetzt, wodurch der Key erhalten bleibt. D.h. der Key wird bei jedem neuen zerlegten Array nicht auf 0 zurückgesetzt, sondern der Key aus dem ursprünglichen Array verwendet. Dabei kann die Anzahl der Elemente im letzten Array kleiner sein, als der Wert des Parameters Array Groesse.
Gegensätzliche Funktionen sind array_combine() (verbinden zwei Arrays, wobei ein Array die Keys, und das andere die Werte enthält) und array_merge() (beliebige Arrays werden zu einem Array zusammengeführt).