Top
PHP Tutorial – Schritt 16: Arrays (und Schleifen) – RonnyDee´s Blog
fade
2500
post-template-default,single,single-post,postid-2500,single-format-standard,eltd-core-1.1.1,flow child-child-ver-1.0.0,flow-ver-1.3.7,eltd-smooth-scroll,eltd-smooth-page-transitions,ajax,eltd-blog-installed,page-template-blog-standard,eltd-header-standard,eltd-fixed-on-scroll,eltd-default-mobile-header,eltd-sticky-up-mobile-header,eltd-dropdown-default,wpb-js-composer js-comp-ver-5.2.1,vc_responsive

PHP Tutorial – Schritt 16: Arrays (und Schleifen)

Um Werte zu definieren und abzurufen verwendeten wir bis dato einfache Variablen. Dies war vor allem beim „Suchen und Ersetzen“-Thema zwar recht übersichtlich, aber auch unbrauchbar da wir von der Anzahl der Variablen aus Gründen der Programmierung und der Übersicht sehr beschränkt waren. Um mehrere Werte zu speichern und abzurufen gibt es in PHP sogenannte Arrays.

|

Man kann sich ein Array wie einen großen Büroschrank mit unzähligen Fächern vorstellen, bei dem wir selbst Namen vergeben, den Inhalt bestimmen und bearbeiten und beliebig erweitern können. Arrays sind eine sehr nützliche Funktion um Daten zu verarbeiten und werden dir den Alltag definitiv erleichtern.

|

Arrays aufbauen und abrufen

Am Besten fangen wir doch mal mit einem praktischen Beispiel an:

|

Wenn du diesen Code mit einem echo-Befehl ausführst, erhälst du die Ausgabe „Array“

Warum? Weil die Variable „$wochentage“ mit dem Code

als Array defniert wurde. Du hast Quasi die Schublade mit dem Namen „wochentage“ erstellt und dort die Zettel „Sonntag, Montag, Dienstag, usw.“ abgelegt. Würdest du nun zu einem Mitarbeiter gehen und zu ihm sagen „Geh zum Schrank und sag mir was in der Schublade „wochentage“ drin ist, so würde er dir nicht die Zettel vorlesen, sondern sagen: „Es sind viele Zettel drinnen“ <- Array – Genau das macht PHP in diesem Fall.

|

Wenn du also wissen willst, was auf einem bestimmten Zettel steht, so musst du das auch dem Mitarbeiter sagen:

In diesem Fall wird die Antwort „Montag“ sein.
Montag deswegen, weil…. ? – Ja, weil PHP bei „0“ (Null) anfängt zu zählen. Sonntag = 0, Samstag = 6

|

Assoziative Arrays

Mit vielen Datenmengen wäre das aber sehr umständlich stets die genaue Position des jeweiligen „Zettels“ zu kennen, oder? Man stelle sich nur vor, man hat mehr als 100 Datensätze und will nur den Inhalt von einem Zettel wissen oder ändern… deshalb bietet PHP die Möglichkeit die Nummerierung in eine eigene Benennung vorzunehmen:

Das heißt… anstatt nur den Wert in das Array zu schreiben, gibst du ein Kürzel mit damit du es später leicht findest und per Kürzel zugreifen kannst:

Die Abfrage funktioniert dann auch nicht mehr per Ziffer/Position, sondern per Kürzel:

Am Besten du spielst einmal diese beiden Szenarien auf http://phpfiddle.org/ durch 🙂

|

Hinzufügen von Werten

Arrays sind hin jeder Hinsicht sehr flexibel, so kann man bei den „Standard“-Arrays ganz leicht neue Werte hinzufügen:

Somit hast du nun im Array neben den Werten „Sonntag“ bis „Samstag“ auch den Wert „Weihnachten“… also in Summe 8 Elemente (wobei das das 7te ist, da ja PHP mit „0“ (Null) anfängt zu zählen!).

|

In assoziativen Arrays

Bei diesen Arrays muss man auch das Kürzel mit dem neuen Wert mitschicken. Also sagen wir ganz einfach:

Ich habe mich bei dem Wert „Weihnachten“ für das Kürzel „we“ entschieden. Dies kannst du aber frei wählen, du musst nur bedenken dass es auch frei ist, denn sonst bist du im nächsten Abschnitt „Ändern von Werten“ 🙂

|

Ändern von Werten

In Arrays wo du quasi ohne eigene Benennung arbeitest, also per Nummerierung, kann man die Elemente recht einfach ändern, wenn du die Position kennst:

Somit änderst du den 3ten (!) Wert des Arrays von „Dienstag“ auf „Feiertag“.

|

In assoziativen Arrays

In assoziativen Arrays kann man ebenfalls auf einfache Art und Weise auch Werte ändern:

|

Beispiel

Für unser Beispiel würde der gesamte Code so aussehen:

|

Zählen der Elemente

Natürlich kannst du auch die Elemente in einem Array jederzeit zählen lassen. Dies funktioniert mit der Funktion:

Durch „count()“ kannst du also jederzeit die Anzahl ausgeben. Wichtig: In diesem Fall gibt dir PHP die tatsächliche Anzahl (also in diesem Fall 7) aus. Hier beginnt PHP nicht mit „0“ (Null). Etwas verwirrend… aber man gewöhnt sich dran.

|

Ausgeben der Elemente

Natürlich wäre es auch nicht schlecht, wenn wir die Elemente in einem Array ausgeben könnten, oder? Grundsätzlich macht man das mit Schleifen (ja, das  haben wir schon gelernt: Schritt 8: If-Anweisung in PHP). Ich zeige dir die 3 möglichen Schleifen mit entsprechenden Kommentaren im Code.

|

For-Schleife

|

While-Schleife

Funktioniert beides recht gut, oder? Dann gibt es noch eine „bequemere“ Ausgabemöglichkeit:

|

Foreach-Schleife

|

Array durchsuchen

Arrays können richtig groß werden. Demzufolge ist es hin und wieder mehr als hilfreich, wenn man Arrays auch durchsuchen kann:

|

Du siehst in diesem Beispiel… Groß-/Kleinschreibung spielt in PHP oft eine Rolle, denn „mittwoch“ kann im gleichen Array nicht gefunden werden. „Mittwoch“ aber sehr wohl. Und jetzt können wir zum ersten Mal die RegEx Suchmuster (siehe Schritt 14: RegEx und preg_replace und Schritt 15: preg_replace im Einsatz) anwenden:

Da wir nun eine neue Variable namens „$joker“ definieren, können wir mit dem Punkt (.) nach jedem x-beliebigen Zeichen suchen:

|

Somit wird in jedem Fall „Mittwoch“, „mittwoch“, aber auch „sittwoch“, oder „bittwoch“ gefunden 🙂

Weißt du denn auch, was wir eingeben müssten, wenn wir wirklich nur nach „Mittwoch“ und „mittwoch“ suchen möchten?

Lösung: $joker = preg_grep(„/[mM]ittwoch/“,$wochentage);

Perfekt! Aber mit Arrays kann man noch mehr machen:

|

Arrays sortieren

Arrays, bzw. deren Inhalt kann man mittels „asort()“; bzw. „arsort()“ und „ksort()“ bzw. „krsort()“ sortieren:

Cool und einfach, oder?
Aber es gibt noch mehr von Arrays zu wissen… deshalb gehen wir nun mal zum nächsten Beitrag

|

photo credit: FotoDB.de via photopin cc

Post a Comment