Hi,

heute geht's um Arrays. Du hast Variablen kennen gelernt und weißt, dass man in solchen Werte speichern kann. Und dass Variablen von verschiedenen Typen sein können (Text, Zahlen, Boolean). Arrays sind sowas ähnliches - sie tun im Grunde dasselbe, es lassen sich darin aber mehr als nur ein Wert abspeichern.

<h2></h2>

<h2>Was sind Arrays?</h2>

Arrays sind sog. Datenfelder, man spricht auch von Schlüssel-Werte-Paaren. Variablen kennst du ja schon. Eine Variable  hat einen Namen und ihr wird ein Wert zugewiesen. Einem Array können hingegen viele Werte zugewiesen werden. Dabei legt man einen Wert im Array ab, auf den man über einen Schlüssel Zugriff erhält. Dieser Schlüssel ist quasi der Index innerhalb der Liste von Werten.

Testen wir das in der Praxis. Ich deklariere ein Array und gebe ihm 3 Werte, anschließend gebe ich den ersten und zweiten Wert aus:

<pre class="lang:default decode:true">&lt;?php # Deklariere ein Array und gib ihm gleich 3 Werte $Obst = array( "Apfel", "Banane", "Melone" ); /** * +++ WICHTIG +++ * Der Index (also die Schlüssel zu den Werten) wurde hier * automatisch vergeben, weil wir selbst keinen angegeben haben. */ # Geben wir das ERSTE Element im Array aus: echo $Obst[0]; # Und jetzt das zweite: echo $Obst[1]; ?&gt;</pre>

Nein, ich hab' mich nicht verschrieben als ich das erste Element im Array ausgeben wollte - das muss so. Sieht komisch aus, aber in der Programmierung beginnt die Nummerierung (Index) immer bei Null und nicht bei Eins.

Analog hierzu können wir nun auch noch das letzte Element ausgeben - du ahnst schon wie wur Zugriff auf das dritte Element erhalten:

<pre class="lang:default decode:true ">echo $Obst[2];</pre>

Fantastisch, ich denke das ist nicht so schwer - abgesehen davon dass es natürlich etwas wirr aussieht, wenn man vorher noch nie Programmcode gesehen hat ;)

Aber schauen wir auch drauf, dass du gleich up-to-date bist, denn für die Array-Deklaration gibt es eine alternative Schreibweise:

<pre class="lang:default decode:true ">&lt;?php # Deklaration wie vorhin: $Obst = array( "Apfel", "Banane", "Melone" ); # Alternative (empfohlene) Schreibweise: $Obst = [ "Apfel", "Banane", "Melone" ]; ?&gt;</pre>

Warum zeig' ich dir das, will ich Verwirrung stiften? Nein, allerdings wirst du beim googlen über beide Schreibweisen stolpern, besser du hast sie also gleich intus. Diese Schreibweise mit den eckigen Klammern würde ich dir übrigens durchweg empfehlen, nicht nur weil es intuitiver ist (den Zugriff auf Elemente des Array erhältst du ja auch, indem du den Schlüssel in eckigen Klammern angibst) sondern auch weil sie geläufiger ist. Möglich ist das ab PHP Version 5.4, aber da solltest du mit dem aktuellen XAMPP-Paket definitiv drüber liegen (PHP 5.5.9 bzw. 5.6 und aufwärts). Falls du doch Bedenken hast, kannst du das mit folgender Code-Zeile ganz schnell herausfinden:

<pre class="lang:default decode:true ">&lt;?php echo phpversion(); ?&gt;</pre>

<h3>Numerische Indexierung</h3>

Wie du siehst, hat PHP also die Werte die zu in das Array gepackt hast, automatisch durchnummeriert - weniger zu tun für uns. Natürlich können wir aber auch selbst angeben, welcher Wert unter welchem Schlüssel gespeichert wird.

<pre class="lang:default decode:true ">&lt;?php # Array deklarieren und Schlüssel selbst angeben: $Obst = [ 12 =&gt; "Apfel", 900 =&gt; "Banane", 1 =&gt; "Melone" ]; ?&gt;</pre>

Es ist also völlig egal, unter welchem Index du deine Werte speichern willst. Entsprechend erfolgt der Zugriff nun über die von dir angegebenen Schlüssel:

<pre class="lang:default decode:true ">&lt;?php # Array deklarieren und Schlüssel selbst angeben: $Obst = [ 12 =&gt; "Apfel", 900 =&gt; "Banane", 1 =&gt; "Melone" ]; echo $Obst[12]; echo $Obst[900]; echo $Obst[1]; ?&gt;</pre>

Die Ausgabe ist ein bisschen ätzend: ApfelBananeMelone . Das kriegen wir schöner hin, indem wir einfach einen HTML-Zeilenumbruch hinter jede ausgegebene Zeile setzen:

<pre class="lang:default decode:true ">&lt;?php # Array deklarieren und Schlüssel selbst angeben: $Obst = [ 12 =&gt; "Apfel", 900 =&gt; "Banane", 1 =&gt; "Melone" ]; echo $Obst[12] . "&lt;br&gt;"; echo $Obst[900] . "&lt;br&gt;"; echo $Obst[1] . "&lt;br&gt;"; ?&gt;</pre>

Und schon sieht es hübsch aus:

<pre class="lang:default highlight:0 decode:true ">Apfel Banane Melone </pre>

<h3>Manuelle und automatische Indexierung mischen</h3>

Du hast jetzt gesehen wie PHP die Nummerierung selbst vornimmt, und wie du sie beeinflussen kannst. Bei der Deklaration können wir beide Varianten ganz einfach mischen. PHP arbeitet dabei so, dass es erneut versucht, beginnend bei Null zu nummerieren - falls wir aber den ersten Wert manuell setzen, nimmt PHP den nächstgrößeren Wert. Sehen wir uns das mal an:

<pre class="lang:default decode:true ">&lt;?php # Array deklarieren und Schlüssel selbst angeben bzw. automatisch vergeben lassen $Obst = [ 12 =&gt; "Apfel", "Banane", 2 =&gt; "Melone", "Birne" ]; ?&gt;</pre>

Und damit wir nicht wieder so viele Zeilen zur Ausgabe verschwenden müssen, gibt es zwei einfache Befehle, um Arrays auf die schnelle auszugeben, var_dump  und print_r . Also dasselbe nochmal:

<pre class="lang:default decode:true">&lt;?php # Array deklarieren und Schlüssel selbst angeben bzw. automatisch vergeben lassen $Obst = [ 12 =&gt; "Apfel", "Banane", 2 =&gt; "Melone", "Birne" ]; # Ausgabe mit var_dump var_dump($Obst); # HTML Zeilenumbruch echo "&lt;br&gt;"; # Ausgabe mit print_r print_r($Obst); ?&gt;</pre>

Die Ausgabe sieht folgendermaßen aus:

<pre class="lang:default highlight:0 decode:true">array(4) { [12]=&gt; string(5) "Apfel" [13]=&gt; string(6) "Banane" [2]=&gt; string(6) "Melone" [14]=&gt; string(5) "Birne" } Array ( [12] =&gt; Apfel [13] =&gt; Banane [2] =&gt; Melone [14] =&gt; Birne )</pre>

So schnell kann's gehen - aber so richtig schön ist es nicht. Ich persönlich verwende zur Ausgabe immer gern den HTML pre -Tag in Verbindung mit print_r, wobei ich an die print_r Funktion noch zusätzlich den zweiten Parameter true der dafür sorgt, dass print_r nicht sofort eine Ausgabe macht - damit kann ich print_r mit echo verwenden. Machen wir's diesmal richtig:

<pre class="lang:default decode:true ">&lt;?php # Array deklarieren und Schlüssel selbst angeben bzw. automatisch vergeben lassen $Obst = [ 12 =&gt; "Apfel", "Banane", 2 =&gt; "Melone", "Birne" ]; # Ausgabe mit print_r echo "&lt;pre&gt;" . print_r($Obst, true) . "&lt;/pre&gt;"; ?&gt;</pre>

Und die Ausgabe ist auch sehr hübsch und übersichtlich:

<pre class="lang:default highlight:0 decode:true ">Array ( [12] =&gt; Apfel [13] =&gt; Banane [2] =&gt; Melone [14] =&gt; Birne ) </pre>

Für Banane und und Birne hat PHP den Index selbst bestimmt. Die Banane an Index 13 (weil der größte vorherige 12 ist, das haben wir so festgelegt) und die Birne an 14, weil es die nächstgrößere Zahl ist.

<h3>Welche Fallstricke gibt es?</h3>

Man kann sich schonmal vertippen und zum Beispiel einen Wert aus dem Array holen, den es am angegebenen Index nicht gibt. Machen wir mal absichtlich einen Fehler:

<pre class="lang:default decode:true">&lt;?php # Array deklarieren und Schlüssel selbst angeben bzw. automatisch vergeben lassen $Obst = ["Apfel"]; # Es gibt nur ein Element (an Index 0), also kriegen wir mit # der folgenden Zeile einen Fehler: echo $Obst[7]; ?&gt;</pre>

So, und wenn du den Code jetzt ausführst, bekommst du entweder gar nix angezeigt (die Seite bleibt weiß und hat keine Ausgabe) oder du bekommst eine Fehlermeldung.

Falls du nur eine weiße Seite bekommst, erweitere deinen Code am Anfang um die folgenden zwei Zeilen:

<pre class="lang:default decode:true ">&lt;?php ini_set('display_errors', 1); error_reporting(E_ALL); # Array deklarieren und Schlüssel selbst angeben bzw. automatisch vergeben lassen $Obst = [ "Apfel" ]; # Es gibt nur ein Element (an Index 0), also kriegen wir mit # der folgenden Zeile einen Fehler: echo $Obst[7]; ?&gt;</pre>

Vermutlich bekommst du also spätestens jetzt den Fehler ausgegeben:

<pre class="lang:default decode:true ">Notice: Undefined offset: 7 in /pfad/zum/skript.php on line 11 </pre>

Perfekt, ein Fehler, was machen wir jetzt damit? Nix, aber du hast eine neue Fehlermeldung kennengelernt. "Undefined offset" bedeutet übersetzt in etwa soviel wie dass der Ableger nicht definiert ist. Der Wert der versucht wurde auszugeben, ist also nicht bei Index 7 abgelegt. Den Fehler wirst du noch öfter sehen.

<h3>Kann ich Werte auch nachträglich zum Array hinzufügen?</h3>

Sicher, nix leichter als das. Und zwar einfach, indem wir an den Variablennamen des Array ein Paar eckiger Klammern hängen und dann den Wert zuweisen. Außerdem siehst du, wie man ein leeres Array anlegen kann (jupp, das geht natürlich auch):

<pre class="lang:default decode:true ">&lt;?php ini_set('display_errors', 1); error_reporting(E_ALL); # Ein leeres Array deklarieren $Obst = []; # Werte mit Angabe des Index hinzufügen $Obst[12] = "Apfel"; $Obst[900] = "Birne"; # Werte ohne Angabe des Index hinzufügen: $Obst[] = "Banane"; $Obst[] = "Melone"; echo "&lt;pre&gt;" . print_r($Obst, true) . "&lt;/pre&gt;"; ?&gt;</pre>

Die Ausgabe hierzu ist dementsprechend:

<pre class="lang:default highlight:0 decode:true ">Array ( [12] =&gt; Apfel [900] =&gt; Birne [901] =&gt; Banane [902] =&gt; Melone ) </pre>

Und natürlich lassen sich vorhandene Werte in einem Array auch genausogut Überschreiben. Check das:

<pre class="lang:default decode:true ">&lt;?php ini_set('display_errors', 1); error_reporting(E_ALL); # Ein leeres Array deklarieren $Obst = [ "Apfel", "Birne", "Banane", "Melone" ]; $Obst[2] = "Erdbeere"; echo "&lt;pre&gt;" . print_r($Obst, true) . "&lt;/pre&gt;"; ?&gt;</pre>

Der Wert an Index 2 (Banane) wurde also ersetzt mit Erdbeere, daher auch die Ausgabe:

<pre class="lang:default highlight:0 decode:true ">Array ( [0] =&gt; Apfel [1] =&gt; Birne [2] =&gt; Erdbeere [3] =&gt; Melone )</pre>

<h2>Assoziativer Index - Namen statt Zahlen</h2>

Wie schon gesagt, ein Element, also ein Wert im Array erhält automatisch einen Index, wenn man selber keinen angegeben hat. Über diesen Index  kann ein Array-Element angesprochen werden. Es gibt 2 Arten, wie Werte in Arrays indexiert werden können:

<ul> <li><strong>Numerischer Index</strong> Wenn man (wir wir es im obigen Code-Beispiel gemacht haben) die Werte einfach an ein Array übergibt, nummeriert PHP den Index von 0 (Null) beginnend einfach durch. Das erste Element ("Wert1") ist an Index #0 des Arrays zu finden, "Wert2" ist an Index #1 und so weiter.</li> <li><strong>Assoziativer Index</strong> So viele seltsame Begriffe auf einmal! Aber wir schaffen das schon, keine Panik. Assoziativ heißt nur, dass man Elemente eines Arrays anstatt durch den numerischen Index über einen Namen anspricht. Das ist wesentlich komfortabler wenn man im Vornherein weiß, welche Werte das Array enthält.</li> </ul>

Funktionieren tut es genauso, nur dass man anstatt Zahlen eben Text für den Index angibt (somit also in Anführungszeichen). Und so läuft es:

<pre class="lang:php decode:true">&lt;?php # Deklaration eines assoziativen Arrays $Person = array( "name" =&gt; "Max Mustermann", "firma" =&gt; "Mustermann GmbH", "strasse" =&gt; "Musterweg 4", "plz" =&gt; "12345", "ort" =&gt; "Musterstadt" ); echo "Array \"Person\" ausgeben:&lt;br&gt;"; echo "&lt;pre&gt;" . print_r($Person, 1) . "&lt;/pre&gt;"; echo "&lt;br&gt;"; echo "Die Person heisst " . $Person["name"] . " und wohnt in " . $Person["ort"] . ".&lt;br&gt;"; # Erweitern wir die Angaben: $Person["alter"] = 32; $Person["email"] = "max.mustermann@example.com"; echo "Die Person ist " . $Person['alter'] . " Jahre alt. Schreib ihr doch eine E-Mail an " . $Person['email'] . "&lt;br&gt;"; ?&gt;</pre>

Das Beispiel erzeugt folgende Ausgabe:

<pre class="lang:php highlight:0 decode:true">Array "Person" ausgeben: Array ( [name] =&gt; Max Mustermann [firma] =&gt; Mustermann GmbH [strasse] =&gt; Musterweg 4 [plz] =&gt; 12345 [ort] =&gt; Musterstadt ) Die Person heisst Max Mustermann und wohnt in Musterstadt. Die Person ist 32 Jahre alt. Schreib ihr doch eine E-Mail an max.mustermann@example.com </pre>

Ist doch deutlich komfortabler und auch intuitiver, als sich einen numerischen Index zu merken :)

<h2>Kann ich Elemente in einem Array numerisch UND assoziativ ablegen?</h2>

Auch das geht, wie folgendes Beispiel zeigt:

<pre class="lang:php decode:true">&lt;?php $Arr = array( 'eins' =&gt; 'Wert 1', 8 =&gt; 'Wert 2', 'Wert 3' ); echo "&lt;pre&gt;" . print_r($Arr, 1) . "&lt;/pre&gt;"; ?&gt;</pre>

Das Beispiel erzeugt folgende Ausgabe:

<pre class="lang:php highlight:0 decode:true ">Array ( [eins] =&gt; Wert 1 [8] =&gt; Wert 2 [9] =&gt; Wert 3 ) </pre>

Wir haben dem Array zuerst über einen assoziativen Index "eins" den Wert "Wert 1" zugewiesen, dann über einen numerischen Index den Wert "Wert 2" und zum Schluss wieder PHP überlassen, an welchem Index er den dritten Wert "Wert 3" ablegt - in dem Fall an Index #9, weil ja #8 der höchste war.

Ein Array kann also numerisch oder assoziativ oder von PHP automatisch indexiert werden - und das geht wenn es mal sein muss auch alles auf einmal.

<h2>Kann der Wert eines Arrays selbst ein Array sein?</h2>

Jawohl, das ist möglich. Man spricht dabei von "verschachtelten" Arrays. Ein Array kann also ein weiteres Array als Wert haben. Geschrieben wird es genauso. Hier ein Code zur Verdeutlichung:

<pre class="lang:php decode:true">&lt;?php # Array Mitarbeiter - Mitarbeiter werden numerisch angesprochen, die einzelnen Personendaten assoziativ $Mitarbeiter = array( array( 'Name' =&gt; 'Max Mustermann', 'Gehalt' =&gt; 2000 ), array( 'Name' =&gt; 'Sonja Meier', 'Gehalt' =&gt; 1600 ), array( 'Name' =&gt; 'Tobias Weiss', 'Gehalt' =&gt; 4500 ) ); echo "&lt;pre&gt;" . print_r($Mitarbeiter, 1) . "&lt;/pre&gt;"; # Wieviel Gehalt bekommt Frau Meier? echo "Sonja Meier bekommt " . $Mitarbeiter[1]['Gehalt'] . "&amp;euro; im Monat."; echo "&lt;br&gt;&lt;br&gt;"; # Natürlich geht auch assoziativ $Lebensmittel = array( 'fastfood' =&gt; array( 'Pizza', 'Burger' ), 'obst' =&gt; array( 'Apfel', 'Banane', 'Trauben', 'Kirschen' ), 'gemuese' =&gt; array( 'Salat', 'Tomaten', 'Gurken' ), 'suesskram' =&gt; array( 'Snickers', 'Maoam', 'Zuckerwatte', 'Nutella' ) ); echo "&lt;pre&gt;" . print_r($Lebensmittel, 1) . "&lt;/pre&gt;"; # Gib mir OBST!!! echo "&lt;strong&gt;Iss mal etwas Obst:&lt;/strong&gt;&lt;br&gt;"; echo "&lt;pre&gt;" . print_r($Lebensmittel['obst'], 1) . "&lt;/pre&gt;"; # Oder Nutella... echo "Wenn du aufgegessen hast kriegst du was ungesundes: "; echo $Lebensmittel['suesskram'][3]; ?&gt;</pre>

Das Beispiel erzeugt folgende Ausgabe:

<pre class="lang:php highlight:0 decode:true">Array ( [0] =&gt; Array ( [Name] =&gt; Max Mustermann [Gehalt] =&gt; 2000 ) [1] =&gt; Array ( [Name] =&gt; Sonja Meier [Gehalt] =&gt; 1600 ) [2] =&gt; Array ( [Name] =&gt; Tobias Weiss [Gehalt] =&gt; 4500 ) ) Sonja Meier bekommt 1600€ im Monat. Array ( [fastfood] =&gt; Array ( [0] =&gt; Pizza [1] =&gt; Burger ) [obst] =&gt; Array ( [0] =&gt; Apfel [1] =&gt; Banane [2] =&gt; Trauben [3] =&gt; Kirschen ) [gemuese] =&gt; Array ( [0] =&gt; Salat [1] =&gt; Tomaten [2] =&gt; Gurken ) [suesskram] =&gt; Array ( [0] =&gt; Snickers [1] =&gt; Maoam [2] =&gt; Zuckerwatte [3] =&gt; Nutella ) ) Iss mal etwas Obst: Array ( [0] =&gt; Apfel [1] =&gt; Banane [2] =&gt; Trauben [3] =&gt; Kirschen ) Wenn du aufgegessen hast kriegst du was ungesundes: Nutella</pre>

<h2>Array-Funktionen</h2>

PHP stellt einige Funktionen speziell für Arrays zur Verfügung. Ich zeige dir im Folgenden einige davon.

<h3>Werte aus einem Array löschen</h3>

Aus einem Array können mit der Funktion unset  Werte gelöscht werden. Schau her:

<pre class="lang:php decode:true">&lt;?php $Arr = array('Wert1', 'Wert2', 'Wert3'); # Ein Element aus einem Array entfernen unset($Arr[1]); echo "&lt;pre&gt;" . print_r($Arr, 1) . "&lt;/pre&gt;"; ?&gt;</pre>

Die Ausgabe hierzu lautet dementsprechend:

<pre class="lang:php highlight:0 decode:true ">Array ( [0] =&gt; Wert1 [2] =&gt; Wert3 ) </pre>

Etwas hieran fällt ins Auge - das Array wird nicht neu indiziert. Der Wert wird einfach rausgelöscht. Wenn man an unset ein Array ohne Angabe des Index übergibt, ist anschließend das Array weg. Analog hierzu kann man an die Funktion unset anstatt eines Array-Wertes auch eine Variable übergeben - diese würde es anschließend einfach nicht mehr geben. Lass mich dir auch das kurz zeigen:

<pre class="lang:php decode:true">&lt;?php $Arr = array('Wert1', 'Wert2', 'Wert3'); # Ein Element aus einem Array entfernen unset($Arr); echo "&lt;pre&gt;" . print_r($Arr, 1) . "&lt;/pre&gt;"; echo "&lt;br&gt;"; # Mit Variablen: $Variable = 12; echo $Variable; unset($Variable); echo $Variable; ?&gt;</pre>

Die Ausgabe hierzu? Schwer zu sagen, entweder bei dir wird gar nichts angezeigt (weiße Seite) oder du erhältst folgende Fehlermeldungen:

<pre class="lang:php highlight:0 decode:true ">Notice: Undefined variable: Arr in /dein/pfad/zu/xampp/htdocs/index.php on line 6 12 Notice: Undefined variable: Variable in /dein/pfad/zu/xampp/htdocs/index.php on line 14</pre>

Die Beschreibung des Fehlers ist recht eindeutig: "Undefined Variable". Es wird also versucht, eine Variable (in dem Fall ja zuerst ein Array und danach eine Variable, PHP macht da von der Fehlermeldung her aber keinen Unterschied) auszugeben, die nicht deklariert ist. Warum nicht? Weil wir sie mit unset gelöscht haben.

<h3>Anzahl der Array-Elemente anzeigen</h3>

Hierfür gibt's eine Funktion count . Man übergibt ihr das Array und sie spuckt aus, wieviele Werte es enthält:

<pre class="lang:php decode:true ">&lt;?php $Arr = array(1, 2, 3, "a", "b", "c"); echo count($Arr); ?&gt;</pre>

Die Ausgabe ist

<pre class="lang:php highlight:0 decode:true ">6</pre>

<h3>Werte im Array zufällig anordnen</h3>

Die Funktion shuffle  tut genau das:

<pre class="lang:php decode:true ">&lt;?php $Arr = array(1, 2, 3, "a", "b", "c"); echo "&lt;pre&gt;" . print_r($Arr, 1) . "&lt;/pre&gt;"; shuffle($Arr); echo "&lt;pre&gt;" . print_r($Arr, 1) . "&lt;/pre&gt;"; ?&gt;</pre>

Folgende Ausgabe wird erzeugt (die natürlich jedes mal anders ist):

<pre class="lang:php highlight:0 decode:true ">Array ( [0] =&gt; 1 [1] =&gt; 2 [2] =&gt; 3 [3] =&gt; a [4] =&gt; b [5] =&gt; c ) Array ( [0] =&gt; 1 [1] =&gt; c [2] =&gt; a [3] =&gt; b [4] =&gt; 3 [5] =&gt; 2 ) </pre>

<h3>Implode und Explode</h3>

Klingt erstmal seltsam, aber diese beiden Funktionen wirst du lieben - und später sicher auch an einigen Stellen verwenden.

<h4>implode</h4>

Mit implode kannst du alle Elemente eines Arrays zu einem String zusammenfügen. Die Funktion erwartet zwei Werte die zu übergeben sind, 1) einen Verkettungs-String und 2) das Array mit den Werten. Schau selbst:

<pre class="lang:default decode:true ">&lt;?php $Namen = [ "Bob", "Thomas", "Linda", ]; echo "Das sind alle Namen:&lt;br&gt;"; echo implode(", ", $Namen); ?&gt;</pre>

Du siehst folgende Ausgabe:

<pre class="lang:default highlight:0 decode:true">Das sind alle Namen: Bob, Thomas, Linda</pre>

Alle Elemente des Arrays wurden mit ", " zusammengefügt. Du kannst das natürlich dann auch einer Variable zuweisen, einfach mit $Text = implode(", ", $Namen); .

<h4>explode</h4>

Explode tut genau das Gegenteil - es splittet einen String anhand eines bestimmten gewünschten Zeichens in Array-Elemente. Check das:

<pre class="lang:default decode:true ">&lt;?php $Text = "Das ist ein ganz toller Text"; $Array = explode(" ", $Text); echo "&lt;pre&gt;" . print_r($Array, 1) . "&lt;/pre&gt;"; ?&gt;</pre>

Wir splitten den Text auf bei allen Leerzeichen, anschließend geben wir das Array mit print_r aus und sehen:

<pre class="lang:default highlight:0 decode:true ">Array ( [0] =&gt; Das [1] =&gt; ist [2] =&gt; ein [3] =&gt; ganz [4] =&gt; toller [5] =&gt; Text )</pre>

Die beiden Funktionen werden dir noch öfter nützlich sein.

<h2>Links &amp; Infos</h2>

<ul> <li>Dokumentation zu Arrays auf php.net lesen: <a href="http://php.net/manual/de/language.types.array.php" target="_blank" rel="noopener noreferrer">http://php.net/manual/de/language.types.array.php</a>.</li> <li>Dokumentation zur Funktion print_r auf php.net lesen: <a href="http://php.net/manual/de/function.print-r.php" target="_blank" rel="noopener noreferrer">http://php.net/manual/de/function.print-r.php</a>.</li> <li>Dokumentation zur Funktion var_dump auf php.net lesen: <a href="http://php.net/manual/de/function.var-dump.php">http://php.net/manual/de/function.var-dump.php</a>.</li> <li>Dokumentation zur Funktion count auf php.net lesen: <a href="http://php.net/manual/de/function.count.php">http://php.net/manual/de/function.count.php</a>.</li> <li>Dokumentation zur Funktion shuffle auf php.net lesen: <a href="http://php.net/manual/de/function.shuffle.php">http://php.net/manual/de/function.shuffle.php</a>.</li> </ul>

<h2>FAQ</h2>

Assoziativer Index in einfachen oder doppelten Anführungszeichen? Ah, da hat jemand aufgepasst. Ja, ich verwende oben im Code mal einfache '  und mal doppelte "  Anführungszeichen. Welche du nimmst ist egal, das bleibt dir überlassen.

Indexiertes Array? Indiziertes Array? Assoziatives Array? Was denn nun?? Einen Index hat jedes Array - dies können Schlüssel vom Typ Integer (=numerisch) oder vom Typ String (=assoziativ) sein. Aber beim numerisch indexierten Array spricht man auch vom indizierten Array (auch wenn das eigentlich nicht ganz der korrekte Ausdruck dafür ist, indexiert ist eher richtig). In anderen Tutorials hast du das vielleicht wieder anders gelesen. Lass dich nicht verrückt machen, wichtig ist, dass der Zugriff numerisch oder assoziativ erfolgt. Fertig.

<h2>Fazit</h2>

"Deklaration von numerischen oder assoziativ indizierten Arrays" ... klingt ja richtig schlau wenn das jemand sagt. Und du weißt jetzt sogar, was damit gemeint ist - wenn das nich cool ist. Im nächsten Teil wird es richtig spannend, da kommt Interaktion in's Spiel. Wir werden mit HTML-Formularen arbeiten, sodass man als Person vor dem Browser auch endlich mal was auf der Seite machen kann. Wir werden lernen, mit GET- und POST-Requests zu arbeiten (was viel schlimmer klingt als es ist) und Benutzereingaben zu verarbeiten. Außerdem werden Schleifen sich als äußerst praktisch erweisen, jetzt wo du Arrays kennengelernt hast.

Gruß Marius