Jetzt anmelden...

Login
Passwort
Registrieren

PHP Tutorial #12

PHP Funktionen für Arrays

Für das Handling von Arrays gibt es verschiedene Funktionen, die sich im Programmieralltag als sehr nützlich erweisen. Die 10 wichtigsten davon zeigen wir Ihnen hier!

Kommentare [0]

Stefan 07.02.2019

Infos zum Artikel

Kategorie PHP
Autor Stefan
Datum 07.02.2019

Schnellüberblick der Array-Funktionen

Name Funktionsdefinition und Erklärung
is_array() bool is_array(mixed $var)

Testet, ob eine Variable ein Array hält

count() int count(array $array)

Zählt Anzahl der Array-Elemente

var_dump() void var_dump (array $array)

Gibt alle Informationen zu einem Array formatiert aus

shuffle() bool shuffle(array $array)

Durchmischt die Elemente eines Arrays

array_reverse() array array_reverse( array $array)

Liefert ein Array mit umgedrehter Reihenfolge zurück

in_array() bool in_array(mixed $needle, array $array)

Prüft, ob sich ein bestimmter Wert ($needle) in einem Array befindet

explode() array explode(string $delimiter, string $string)

Zerlegt einen String in ein numerisches Array

implode() string implode(string $glue, array $pieces)

Nimmt ein Array auf und verbindet die einzelnen Elemente zu einem einzigen String

array_pop() mixed array_pop(array $array)

Liefert das letzte Array-Element zurück und löscht dieses aus dem Array

array_shift() mixed array_shift (array $array)

Liefert das erste Array-Element und löscht dieses aus dem Array

is_array()

Fangen wir mit der einfachsten Array-Funktion an: Die PHP-Funktion is_array() testet, ob eine Variable ein Array hält. Die zu testende Variable muss dabei als Parameter der Funktion übergeben werden.

Fällt der Test positiv aus, wird true bzw. 1 zurückgeliefert. Ansonsten false bzw. nichts. Ein Beispiel:

$einArray = array(2, 40, 59, 99, 103);
$keinArray = "Ein String";

echo is_array($einArray);
echo is_array($keinArray);

Wir definieren in den ersten beiden Zeilen zwei Variablen. Die eine ($einArray) hält ein Array mit Integer-Werten. Die andere Variable ($keinArray) hält (Überraschung!) kein Array, sondern einen String.

Wir führen in den Zeilen 4-5 nun die Funktion is_array() zweimal aus. Da die Variable $einArray ein Array hält, liefert die Funktion in Zeile 4 true, also 1. In Zeile 5 dagegen liefert die Funktion false und somit wird nichts ausgegeben.

Auf dem Bildschirm sehen wir deshalb Folgendes:

1

count()

Kommen wir zur nächsten sehr nützlichen Funktion. count() zählt die Elemente eines Arrays und gibt das Ergebnis als int-Wert zurück. Wir schreiben in Klammern unsere Array-Variable, die gezählt werden soll.

Beispiel:

$testArray = array("Ian", "Thomas", "Marcus", "Proximus");
echo count($testArray); // 4

Die echo-Ausgabe lautet dementsprechend 4, denn das Array hat 4 Elemente.

var_dump()

Wir haben diese Funktion bereits bei den Funktionen zur Behandlung von Variablen kennengelernt. Sie hilft uns besonders bei Arrays, da sie deren kompletten Inhalt ausgibt - und zwar schön formatiert.

Wir testen die Funktion einmal mit einem assoziativen Array:

//Assoziatives Array definieren:
$preise = array("Kirschen" => 2.99,
"Erdbeeren"=>3.49,
"Trauben"=>1.50,
"Orangen" => 4.19);

//Funktion var_dump() aufrufen:
var_dump($preise);

Das Ergebnis sieht so aus:

array(4) { ["Kirschen"]=> float(2.99) ["Erdbeeren"]=> float(3.49) ["Trauben"]=> float(1.5) ["Orangen"]=> float(4.19) }

shuffle()

Mit dieser Funktion werden die Elemente eines Arrays zufällig gemischt.

Wir definieren im folgenden Beispiel ein numerisch-indiziertes Array (Zeile 3) und mischen die einzelnen Elemente mit shuffle() ordentlich durch (Zeile 4).

$zahlen = array(1,2,3,4,5,6,7);
shuffle($zahlen);
var_dump($zahlen);

Zum Schluß verwenden wir noch in Zeile 5 die Funktion var_dump(), um das Resultat der ganz neuen Reihenfolge der Array-Elemente zu sehen:

array(7) { [0]=> int(3) [1]=> int(4) [2]=> int(5) [3]=> int(6) [4]=> int(1) [5]=> int(7) [6]=> int(2) }

array_reverse()

Die Letzten werden die Ersten sein - mit dieser Funktion kein Problem. array_reverse() kehrt nämlich die Reihenfolge der Array-Elemente einfach um. Das letzte Element wird das erste und umgekehrt.

Die Funktion lässt das Original-Array unangetastet und liefert stattdessen ein neu erzeugtes zurück:

$captains =array("Picard", "Janeway", "Kirk", "Sisko");

$captainsNeu = array_reverse($captains);

echo $captainsNeu[0] . " - ";
echo $captainsNeu[1] . " - ";
echo $captainsNeu[2] . " - ";
echo $captainsNeu[3];

Durch den Funktionsaufruf array_reverse($captains); wird die Reihenfolge der Elemente umgekehrt und als neues Array in der Variablen $captainsNeu gepeichert. Die einzelnen Elemente rufen wir ansachließend einzeln auf und erhalten folgenden Output:

Sisko - Kirk - Janeway - Picard

in_array()

Mit in_array() können wir überprüfen, ob sich ein bestimmter Wert in einem bestimmten Array befindet.

Die Funktion benötigt zwei Parameter: Einmal der gesuchte Wert und einmal das Array, in dem dieser Wert gesucht werden soll. Der erste Wert wird auch needle genannt, zu deutsch "Nadel" - wir können mit dieser Funktion also sprichwörtlich die Nadel im Heuhaufen suchen.

Wenn wir sie dann gefunden haben, liefert die Funktion true bzw. 1 zurück.

Ein Beispiel macht die Sache wie immer klar:

$planetenArray = array("Merkur", "Venus", "Erde", "Mars", "Jupiter");
$planet = "Mars";
echo "Ist der Planet" . $planet . " im Array? 
"; if(in_array($planet, $planetenArray)){ echo "Ja, das ist er!"; } else{ echo "Ne, sorry."; }

Alles klar? Wir prüfen in Zeile 5 mit der in_array()-Funktion, ob der Wert von $planet ("Mars") im Array $planetenArray existiert.

Wir haben die Funktion als Prüfung in einer if-else-Abfrage geschrieben. Je nach booleschem Ergebnis-Wert erhalten wir einen der beiden echo-Texte am Bildschirm angezeigt. In unserem Fall (weil true): "Ja, dieser Planet ist vorhanden!"

explode()

Jetzt wird's gewaltätig! Denn mit der Funktion explode() können Sie einen beliebigen String sprengen (engl. explode) und die zerstückelten Einzelteile in einem Array speichern. Klingt martialisch? Naja, halb so wild, denn der ursprüngliche String bleibt dabei vollständig erhalten.

Was wir uns beim Einsatz der Funktion fragen müssen, ist, mit welchem Trennzeichen (delimiter) der String zerlegt werden soll. Sinnvoll ist oftmals das Leerzeichen ' ', da so ein String nach seinen Wörtern gesprengt werden kann.

Das Trennzeichen ist der erste Funktionsparameter. Der String, den wir in Einzelteile sprengen wollen, ist der zweite Parameter:

$string = "Ich bin mehr als die Summe meiner Teile";
$array = explode(' ', $string);

var_dump($array);

Der Aufruf der Funktion var_dump() in Zeile 7 zeigt uns am Ende die einzelnen Array-Elemente, die wir aus dem String $string erhalten haben:

array(8) { [0]=> string(3) "Ich" [1]=> string(3) "bin" [2]=> string(4) "mehr" [3]=> string(3) "als" [4]=> string(3) "die" [5]=> string(5) "Summe" [6]=> string(6) "meiner" [7]=> string(5) "Teile" }

Am Ende noch der Beweis, dass unserem String wirklich nichts zugestoßen ist:

echo $string;

Das ergibt:

Ich bin mehr als die Summe meiner Teile

implode()

Das Gegenteil von explode() ist implode(). Diese Funktion bewirkt, dass die Einzelteile eines Arrays zu einem String zusammengesetzt werden.

Wir übergeben der Funktion dabei zwei Parameter. Der erste ist ein String. Dieser String (zumeist genügt ein einfachen Zeichen) ist der Teil, der zwischen unseren zusammengesetzten Einzelteilen steht. Man nennt ihn deshalb auch $glue, was soviel wie "Kleber" heißt. Und genau das machen wir mit der Funktion implode() auch: Wir kleben aus Einzelteilen einen String zusammen!

Der zweite Parameter ist das Array, dessen Elemente zum neuen String verbunden werden. Der Rückgabewert ist dann dieser neue String.

Erneut wird uns ein konkretes Code-Beispiel zeigen, wie das abläuft:

$falken = array("Buntfalke", "Graufalke", "Silberfalke", "Wanderfalke");
$string = implode(', ', $falken);
echo $string;

Der Output sieht dann so aus:

Buntfalke, Graufalke, Silberfalke, Wanderfalke

Wir lassen uns durch den Einsatz der Funktion (zweite Zeile) aus den Einzelteilen des Arrays $falken einen zusammengesetzen String liefern. Als "Kleber"-String verwenden wir , (Komma- und Leerzeichen).

array_pop()

Die Funktion array_pop() liefert das letzte Element eines Arrays zurück. Dieses Element wird danach aus dem Array gelöscht:

$falken = array("Buntfalke", "Graufalke", "Silberfalke", "Wanderfalke");
echo "Letztes Element: " . array_pop($falken) . "
"; var_dump($falken);

In diesem Beispiel erstellen wir ein String-Array und rufen anschließend die Funktion array_pop() auf. Die Funktion erhält das Array $falken als Parameter. Das letzte Array-Element (Silberfalke) wird zurückgeliefert (und mit echo am Bildschirm angezeigt). Damit endet aber auch die Existenz dieses Array-Elements, denn es wird nun aus dem Array gelöscht, wie wir durch die Funktion var_dump() beweisen können:

Letztes Element: Wanderfalke array(3) { [0]=> string(9) "Buntfalke" [1]=> string(9) "Graufalke" [2]=> string(11) "Silberfalke" }

Wir sehen: Das Array hat keinen Wanderfalken mehr!

array_shift()

Diese Funktion läuft fast genauso wie array_pop() - nur genau umgekehrt: Statt des letzten Array Elements wird das erste zurückgeliefert und anschließend aus dem Array gelöscht.

Im folgenden Beispiel erstellen wir das Array mit Strings von oben noch einmal. Aber diesmal setzen wir array_shift() ein:

$falken = array("Buntfalke", "Graufalke", "Silberfalke", "Wanderfalke");
echo "Erstes Element: " . array_shift($falken) . "<br>";

var_dump($falken);

Erstes Element: Buntfalke array(3) { [0]=> string(9) "Graufalke" [1]=> string(11) "Silberfalke" [2]=> string(11) "Wanderfalke" }

Kommentar schreiben

Nur angemeldete und aktivierte Benutzer können kommentieren.

Alle Kommentare

Es gibt bislang noch keine Kommentare zu diesem Thema.

Datentypen

Eine Übersicht der wichtigsten Datentypen in PHP

PHP einrichten

Erfahren Sie, wie einfach es ist, PHP auf unserem lokalen System startklar zu machen.

Eigene Funktionen

Hier zeigen wir Ihnen, wie Sie eigene Funktionen schreiben.

FALCONBYTE.NET

Handmade with 🖤️

© 2018, 2019 Stefan E. Heller

Impressum | Datenschutz

facebook programmieren lernen twitter programmieren lernen youtube programmieren lernen