SELFPHP

SELFPHP-Druckversion
Original Adresse dieser Seite:
http://www.selfphp.de/praxisbuch/praxisbuchseite.php?site=160&group=28&page=2
© 2001-2024 E-Mail SELFPHP Inh. Damir Enseleit, info@selfphp.de
© 2005-2024 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de


Arrayfunktionen


In PHP stehen Ihnen zahlreiche vordefinierte Arrayfunktionen zur Verfügung, mit denen die Verarbeitung von Verwaltung von Arrays wesentlich erleichtert wird.

Funktionen für mehrere Elemente


Nachfolgend sind die Funktionen zur Navigation innerhalb eines Arrays und zum Zugriff auf einzelne Arrayelemente zusammengestellt.

FunktionSyntaxBeschreibung
array_walk()$success = array_walk($array, 'func');Wendet eine benutzerdefinierte Funktion auf die Elemente eines Arrays an.
count()$anzahl = count($array);Gibt die Anzahl der Elemente eines Arrays an.
sizeof()$anzahl = sizeof($array);Gibt die Anzahl der Elemente eines Arrays an.
current()$aktpos = current($array);Gibt das aktuelle Element eines Arrays zurück.
pos()$aktpos = pos($array);Gibt das aktuelle Element eines Arrays zurück.
each()$eintrag = each($array);Gibt das nächste Schlüssel-Werte-Paar eines assoziativen Arrays zurück.
end()$letzes = end($array);Setzt den internen Arrayzeiger auf das letzte Element.
key()$schluessel = key($array);Gibt den Schlüssel der aktuellen Position des Arrayzeigers zurück.
next()next($array);Setzt den internen Arrayzeiger um 1 weiter.
prev()prev($array);Setzt den internen Arrayzeiger um 1 zurück.
reset()$erstes = reset($array);Setzt den internen Arrayzeiger auf das erste Element eines Arrays zurück.


Sortierfunktionen

Bei der Arbeit mit Arrays und ihren Elementen wird Ihnen sicher schnell die Frage in den Sinn kommen, ob es nicht auch Arrayfunktionen gibt, die Ihnen beim Sortieren der Einträge behilflich sind. Doch, gibt es!

Sortiert werden kann in unterschiedlichen Sortierrichtungen, entweder nach den Werten der Elemente oder nach deren Schlüsseln.

FunktionSyntaxBeschreibung
arsort()arsort($array);Sortiert ein Array rückwärts unter Beibehaltung der Zuordnung der Indizes.
asort()asort($array);Sortiert ein Array vorwärts unter Beibehaltung der Zuordnung der Indizes.
krsort()krsort($array);Sortiert ein assoziatives Array absteigend nach Schlüsseln.
ksort()ksort($array);Sortiert ein assoziatives Array aufsteigend nach Schlüsseln.
rsort()rsort($array);Sortiert ein eindimensionales Array absteigend.
natcasesort()natcasesort($array);Sortiert ein Array in natürlicher Reihenfolge, Groß-/ Kleinschreibung wird ignoriert.
natsort()natsort($array);Sortiert ein Array in natürlicher Reihenfolge.
sort()sort($array);Sortiert ein eindimensionales Array aufsteigend.
uasort()uasort($array,func);Sortiert ein assoziatives Array mit einer Vergleichsfunktion.
uksort()uksort($array,func);Sortiert ein assoziatives Array anhand der Schlüssel unter Verwendung einer Vergleichsfunktion.
usort()usort($array,func);Sortiert ein Array anhand der Werte unter Verwendung einer Vergleichsfunktion.


Sonstige Arrayfunktionen

Hier noch eine Reihe von Arrayfunktionen, welche für spezielle Arrayoperationen zur Verfügung gestellt werden:

FunktionSyntaxBeschreibung
extract()extract($array [, extract_type [, prefix]]);Erstellt aus einem assoziativen Array Variablen. Es behandelt die Schlüssel des assoziativen Arrays $array als Variablennamen und die Werte als Variablenwerte. Seit Version 4.0.5 gibt diese Funktion die Anzahl der extrahierten Variablen zurück.
list()list($var1,...,$varN) = $array;Weist einer Gruppe von Variablen Werte in einer Operation zu. Anwendung nur auf indizierte Arrays möglich.
range()range(min,max[,step]);Erzeugt ein Array mit Ganzzahlen aus dem angegebenen Wertebereich von min bis max. Der Parameter step wurde in 5.0.0 als optionaler Parameter eingeführt. Ist ein step-Wert angegeben, wird diese Schrittweite zwischen den Elementen in der Sequenz verwendet. Ist step nicht angegeben, wird automatisch der Wert 1 für die Schrittweite angenommen.
shuffle()shuffle($array);Mischt die Elemente eines Arrays nach dem Zufallsprinzip.


Neue Arrayfunktionen seit PHP 4

PHP stellt seit der Version 4 eine Reihe von neuen Arrayfunktionen zur Verfügung.{PSP}
FunktionSyntaxBeschreibung
array_change_key_case()$array1 = array_change_key_case($array[, case]);Liefert ein Array mit allen String-Schlüsseln in Klein- (CASE_LOWER) oder Großbuchstaben (CASE_UPPER).
array_chunk()$array1 = array_chunk($array, size [, preserve_keys]);Splittet ein Array in Teile auf. Am Ende kann auch ein Array mit weniger Werten erzeugt werden. Die Arrays werden als Teile eines mehrdimensionalen Arrays erzeugt, welches bei Null beginnt und numerisch indiziert ist. Sie können PHP dazu zwingen, die originalen Schlüssel des Arrays input beizubehalten, indem Sie den optionalen Parameter preserve_keys auf TRUE setzen. Geben Sie FALSE an, werden in jedem erzeugten Array neue numerische Indizes erzeugt, welche bei Null beginnen. Default ist FALSE.
array_combine()$array1 = array_combine($arraykeys, $arrayvalues);Liefert ein Array $array1 mithilfe eines Arrays $arraykeys, welches die Schlüssel vorgibt, und eines Arrays $arrayvalues, welches die Werte vorgibt. Die Anzahl der Elemente beider Arrays muss übereinstimmen, sonst wird FALSE zurückgegeben.
array_count_values()$array1 = array_count_values($array);Zählt sämtliche Elemente eines Arrays und gibt die Häufigkeit ihres Auftretens zurück.
array_diff_assoc()$array1 = array_diff_assoc($array1,...,$arrayN);Ermittelt die Unterschiede von Arrays. Die Schlüssel werden für den Vergleich ebenfalls verwendet.
array_diff_key()$array1 = array_diff_key( array array1, …, arrayN);Ermittelt den Unterschied zwischen Arrays, indem es die Schlüssel vergleicht. Diese Funktion arbeitet wie array_diff() mit dem Unterschied, dass der Vergleich mit den Schlüsseln statt den Werten arbeitet.
array_diff_uassoc()$array1 = array_diff_uassoc($array1,...$arrayN[, callback key_compare_function]);Ermittelt den Unterschied von Arrays mit zusätzlicher Indexprüfung, welche durch eine benutzerdefinierte Funktion vorgenommen wird.
array_diff_ukey()$array1 = array_diff_ukey($array1,...$arrayN[, callback key_compare_function]);Ermittelt den Unterschied von Arrays mittels einer Callback-Funktion für den Vergleich der Schlüssel. Diese Funktion ähnelt array_diff(), aber der Vergleich arbeitet auf den Schlüsseln anstatt den Werten.
array_diff()$array1 = array_diff($array1,...,$arrayN);Ermittelt die Unterschiede von Arrays. Die Schlüssel bleiben erhalten.
array_fill()$array1 = array_fill(start_index, num, value);Füllt ein Array mit Werten.
array_filter()$array1 = array_filter($array[, callback function]);Filtert Elemente eines Arrays mittels einer Callback-Funktion. Ist $array ein assoziatives Array, bleiben die Schlüssel erhalten.
array_flip()$array1 = array_flip($array);Vertauscht Werte und Schlüssel in einem Array.
array_intersect_assoc()$array1 = array_intersect_assoc($array1,..., arrayN);Ermittelt die Schnittmenge von Arrays mit einer zusätzlichen Indexüberprüfung. Beachten Sie, dass anders als von array_intersect() die Schlüssel zum Vergleich herangezogen werden.
array_intersect_key()$array1 = array_intersect_key($array1,..., arrayN);Ermittelt die Schnittmenge von Arrays, indem es die Schlüssel vergleicht.
array_intersect_uassoc()$array1 = ar-ray_intersect_uassoc($array1,...$arrayN[, callback key_compare_function]);Ermittelt die Schnittmenge von Arrays mit Indexprüfung; vergleicht Indizes mit einer Callback-Funktion.
array_intersect_ukey()$array1 = array_intersect_ukey($array1,...$arrayN[, callback key_compare_function]);Ermittelt die Schnittmenge zweier Arrays mittels eines durch eine Callback-Funktion durchgeführten Schlüsselvergleiches.
array_intersect()$array1 = array_intersect($array1,..., arrayN);Ermittelt die Schnittmenge von Arrays.
array_key_exists()$array1 = array_key_exists(key,search);Prüft, ob ein Schlüssel in einem Array existiert. Gibt TRUE zurück, wenn key in dem Array vorhanden ist. key kann jeder für einen Array-Index mögliche Wert sein.
array_keys()$array1 = array_keys($array [, search_value]);Liefert alle Schlüssel eines Arrays. Ist der optionale Parameter search_value angegeben, werden nur die Schlüssel für diesen Wert zurückgegeben. Andernfalls werden sämtliche Schlüssel von $array zurückgegeben.
{PSP}
FunktionSyntaxBeschreibung
array_map()$array1 = array_map(callback, $array1,...,arrayN);Wendet eine Callback-Funktion auf die Elemente von Arrays an.
array_merge_recursive()$array1 = array_merge_recursive($array1,...,arrayN);Führt zwei oder mehr Arrays zusammen. Das daraus resultierende Array wird zurückgegeben.
array_merge()$array1 = array_merge($array1,...,arrayN);Führt zwei oder mehr Arrays rekursiv zusammen. Das daraus resultierende Array wird zurückgegeben.
array_multisort()$array1 = array_multisort($arrayr1 [, arg [, ... [, arrayN...]]]);Sortiert mehrere oder multidimensionale Arrays. Die Struktur der Argumente ist etwas ungewöhnlich, aber flexibel. Das allererste Argument muss ein Array sein. Die nachfolgenden Argumente können entweder ein Array oder eines der folgenden Sortierflags sein. Flags für Sortierreihenfolge: SORT_ASC – sortiere in aufsteigender Reihenfolge, SORT_DESC – sortiere in absteigender Reihenfolge. Flags für Sortiertypen: SORT_REGULAR – vergleiche Felder normal,SORT_NUMERIC – vergleiche Felder numerisch und SORT_STRING – vergleiche Felder als Strings. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.
array_pad()$array1 = array_pad($array1, pad_size, pad_value);Vergrößert ein Array auf die spezifizierte Länge mit einem Wert. Liefert eine Kopie von $array1, welche auf die von pad_size spezifizierte Größe mit dem Wert pad_value erweitert wurde. Ist der Parameter pad_size positiv, wird das Array rechts erweitert, ist er negativ, dann erfolgt die Erweiterung links. Ist der absolute Wert von pad_size kleiner oder gleich der Länge von input, erfolgt keine Erweiterung.
array_pop()$element = array_pop($array);Entfernt das letzte Element eines Arrays und gibt dieses zurück.
array_push()$array1 = array_push($array1, $element,...$elementN);Fügt Elemente am Ende des Arrays an.
array_rand()$array1 = array_rand($array [, num_req]);Liefert einen oder mehrere zufällige Einträge eines Arrays. Die Funktion übernimmt das Array $array1 und ein optionales Argument num_req, welches die gewünschte Anzahl Einträge spezifiziert. Ist num_req nicht angegeben, wird ein Defaultwert von 1 angenommen.
array_reduce()$array1 = array_reduce($array1, callback function [, initial]);Iterative Reduktion eines Arrays zu einem Wert mittels einer Callback-Funktion. Ist der optionale Parameter initial angegeben, wird er am Beginn des Prozesses benutzt oder als Resultat verwendet, sollte das Array leer sein.
array_reverse()$array1 = array_reverse($array1);Gibt ein Array in umgekehrter Reihenfolge zurück.
array_search()$array1 = array_search(needle, $array1 [, strict]);Diese Funktion durchsucht $array1 nach needle und gibt bei Erfolg den Schlüssel zurück, andernfalls FALSE. Ist der optionale dritte Parameter strict auf TRUE gesetzt, prüft array_search() auch die Typen von needle in haystack.
array_shift()$element = array_shift($array1);Entfernt ein Element vom Anfang eines Arrays und gibt es zurück.
array_slice()$array1 = array_slice($array1, pos, length);Gibt die Anzahl der Elemente des Arrays ab Position pos zurück.
array_splice()$array1 = array_splice($array1, pos,length, $array2);Entfernt die Anzahl der Elemente des Arrays und fügt Elemente des Arrays $array2 hinzu. $array1 enthält die ersetzten Elemente.
array_sum()$array1 = array_sum($array);Liefert die Summe der Werte in einem Array.
array_udiff_assoc()$array1 = array_udiff_assoc($array1,...,$arrayN [, callback data_compare_func]);Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht mittels einer Callback-Funktion. Beachten Sie, dass Schlüssel anders als von array_diff() und array_udiff() für den Vergleich herangezogen werden. Der Vergleich der Arrayinhalte wird von einer benutzerdefinierten Callback-Funktion durchgeführt. In dieser Hinsicht ist das Verhalten anders als jenes von array_diff_assoc(), welche eine eingebaute Vergleichsfunktion verwendet.
{PSP}
FunktionSyntaxBeschreibung
array_udiff_uassoc()$array1 = array_udiff_uassoc($array1,...,$arrayN [, callback data_compare_func]);Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Indizes mittels einer Callback-Funktion.
array_udiff()$array1 = array_udiff($array1,...,$arrayN [, callback data_compare_func]);Ermittelt den Unterschied zwischen Arrays mittels einer Callback-Funktion für den Datenvergleich.
array_uintersect_assoc()$array1 = array_uintersect_assoc ($array1,...,$arrayN [, callback data_compare_func]);Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten mittels einer Callback-Funktion. Beachten Sie, dass anders als in array_uintersect() die Schlüssel zum Vergleich herangezogen werden.
array_uintersect_uassoc()$array1 = array_uintersect_uassoc ($array1,...,$arrayN [, callback data_compare_func, callback key_compare_func]);Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Schlüssel mittels einer Callback-Funktion. Beachten Sie, dass anders als in array_uintersect() die Schlüssel zum Vergleich herangezogen werden. Sowohl Daten als auch Indizes werden durch eine Callback-Funktion verglichen.
array_uintersect()$array1 = array_uintersect($array1,...,$arrayN [, callback data_compare_func]);Ermittelt die Schnittmenge von Arrays, vergleicht Daten mittels einer Callback-Funktion.
array_unique()array_unique($array1);Entfernt doppelte Werte aus einem Array.
array_unshift()$array1 = array_unshift($array1,var1,…,varN);Fügt einzelne Elemente am Anfang eines Arrays ein.
array_values()$array1 = array_values($array1);Gibt sämtliche Werte eines assoziativen Arrays zurück.
array_walk_recursive()array_walk_recursive($array1, callback function [, data]);Wendet eine Benutzerfunktion rekursiv auf jedes Element eines Arrays an. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE. Ist der optionale Parameter data angegeben, so wird er als dritter Parameter an die Funktion funcname übergeben.
array_walk()array_walk($array1, callback function [, data]);Wendet eine Benutzerfunktion auf jedem Element eines Arrays an. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE. Ist der optionale Parameter data angegeben, so wird er als dritter Parameter an die Funktion funcname übergeben.
compact()$var1=1;$varN=N; $array1 = compact ($var1,...varN);Übernimmt die Variablennamen und deren Werte in ein Array.
in_array()in_array(20,$array1[,strict]);Gibt TRUE zurück, wenn ein Wert in einem Array vorhanden ist. Ist der dritte Parameter strict auf TRUE gesetzt, prüft in_array() auch die Typen.