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 Inhaltsverzeichnisses für eine Astronomie-Webseite.
Der Syntax:
Array = array_chunk (Eingabearray, Array Größe, [Keys Erhalten])
Die PHP-Funktion array_chunk() teilt ein Array in kleinere Teilarrays auf. Der erste Parameter ist das zu teilende Array und der zweite Parameter gibt an, in wie viele Teile das Array geteilt werden soll. Jedes Teilarray hat die gleiche Anzahl an Elementen, bis auf das Letzte, welches evtl. weniger Elemente enthalten kann. Jedes Teilarray wird in einer neuen numerischen Array-Variable gespeichert.
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 mit print_r() 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 Größe 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).