Suchen

Programmieren mit PHP, Teil 3 Arrays in PHP nutzen

| Autor / Redakteur: Thomas Joos / Stephan Augsten

Arbeitet man in PHP mit mehreren Werten wie Listen mit Produkten und Elementen, sind Arrays notwendig. Hier lassen sich mehrere Objekte einbinden, die im Verlauf des Codes weiter verwendet werden können.

Firma zum Thema

In einer Array-Variable lassen sich viele Werte in Form einer Liste hinterlegen und gezielt ansprechen.
In einer Array-Variable lassen sich viele Werte in Form einer Liste hinterlegen und gezielt ansprechen.
(Bild gemeinfrei: lmonk72 - Pixabay.com)

Um ein Array zu erstellen, kann zum Beispiel eine Variable definiert werden, die wiederum aus einem Array besteht. Im Array werden die Objekte festgelegt, die wiederum als Liste im Code häufiger verwendet werden sollen, zum Beispiel Produkte in einem Webshop.

Arrays erstellen

Gehen wir davon aus, dass eine Liste mit den Objekten „Produkt1“, „Produkt2“ und „Produkt3“ im Code genutzt werden sollen. Der erste Schritt besteht darin, zunächst eine Variable zu definieren und hier als Array zu konfigurieren:

$produkt = array ();

In den Klammern werden die Objekte integriert, die Bestandteil des Arrays sein sollen. Handelt es sich dabei um einen String, muss dieser in Anführungszeichen gesetzt werden. Die einzelnen Bestandteile der Liste werden dann wiederum mit Kommas getrennt, zum Beispiel:

$produkt = array („Produkt1“, „Produkt2“, „Produkt3“);

Sollen Zahlen im Array aufgenommen werden, fallen die Anführungszeichen weg:

$Wert = array (22, 37, 45, 67, 89, 102, 333);

Oft ergibt sich im Rahmen eines Objektes die Notwendigkeit, zu einem vorhandenen Array weitere Mitglieder der Liste hinzuzufügen. Dazu wird die Variable des Arrays mit eckigen Klammern [] aufgerufen und der Name des neuen Objektes aufgenommen:

$produkt [] = „Produkt4“;

Alternativ ist es möglich Arrays zu definieren, indem die Werte des Arrays in der Variablen in eckigen Klammern aufgelistet werden. In diesem Fall ist die Benennung als Array nicht notwendig:

$produkt = [„Produkt1“, „Produkt2“, „Produkt3“];

Arrays lassen sich auch verschachteln. Dazu wird beim Erstellen eines Arrays in der Liste der enthaltenen Objekte ein weiteres Array erstellt, das seinerseits wieder Objekte enthält. Dadurch kann eine nahezu beliebige Anzahl an Arrays und Unterarrays erstellt und verschachtelt werden.

Arrays verwenden

Um die Daten in einem Array zu nutzen, zum Beispiel um einzelne Daten auszugeben, wird das Array über seine Variable aufgerufen. Soll ein bestimmtes Produkt ausgegeben werden, zum Beispiel mit „echo“, dann muss in eckigen Klammern [] die Nummer des Objektes im Array angegeben werden.

PHP nummeriert die Objekte in einem Array automatisch und beginnt mit dem Wert 0. Die Objekte im oben definierten Array haben also die folgenden Nummern: „Produkt1“ = 0, „Produkt2“ = 1, „Produkt3“ = 2 und „Produkt4“ = 3. Soll „Produkt1“ angezeigt werden, wird der folgende Befehl genutzt:

echo $produkt [0];

Arrays verwalten und auslesen – auch mit Schleifen

Natürlich lassen sich auch Informationen zum Array anzeigen. Sinnvoll ist das, wenn ein Array anwächst und zum Beispiel nicht klar ist, welche Objekte im Array enthalten sind und welche Nummerierung die Objekte im Array haben. Dazu wird folgender Befehl verwendet, am Beispiel des hier erstellen Arrays mit der Variablen „$Produkt“:

print_r ($produkt);

Arrays können aber auch mit Schleifen ausgelesen werden, um die Ausgabe eines Arrays schöner zu formatieren. Ideal ist hier eine Foreach-Schleife. Hier wird die Variable des Arrays verwendet und zusätzlich eine weitere Variable erzeugt, um die Ausgabe zu steuern. In geschweiften Klammern wird der Befehl angegeben, der in Schleife genutzt werden soll. Um ein Array auszugeben, ist zum Beispiel „echo“ sinnvoll:

foreach ($Produkt as $ProdAus) {   echo „$ProdAus“;
}

Soll die Ausgabe noch mit Zeilenumbrüchen erfolgen, ist folgende Syntax sinnvoll:

foreach ($Produkt as $ProdAus) {
   echo „$ProdAus<br>\n“;
}

Zufallsauswahl und Variablen nutzen

Um ein zufälliges Objekt in einem Array zu nutzen ist es sinnvoll, zunächst die Anzahl der Objekte im Array zu zählen. Die Anzahl kann wiederum in einer Variablen gespeichert werden:

$anzahl = count($Produkt);

Natürlich kann die Anzahl auch wieder mit „echo“ ausgegeben werden:

echo $Anzahl;

Auf Basis der Daten lässt sich ein Zufallswert erzeugen. Hier wird ein Minimalwert festgelegt, in diesem Beispiel der Wert 0, weil es sich dabei um den ersten Wert des Arrays handelt. Als zweiter Wert, wird die Anzahl der Objekte im Array verwendet, die über „count“ ermittelt wurde:

$zufall = Rand(0, $Anzahl)

In PHP lassen sich aber auch Zufallselemente auslesen, in dem „array_rand“ verwendet wird. In diesem Beispiel würde das Speichern eines zufälligen Inhalts im Array folgendermaßen aussehen:

$zufall = array_rand($Produkt);

Allerdings muss hier beachtet werden, dass die Variable $Anzahl die tatsächliche Anzahl der Produkte zählt, in unserem Beispiel also 4 zurückliefert (Produkt1 bis Produkt4). Da „rand“ aber bereits mit dem Zähler 0 beginnt, ist die größte Nummerierung im Array wie erwähnt 3. Aus diesem Grund muss die Variable um 1 reduziert werden:

$anzahl = count($Produkt) -1;

Dadurch kann $Anzahl mit „rand“ in diesem Beispiel genutzt werden.

Assoziative Arrays nutzen

Mit assoziativen Arrays lassen sich die einzelnen Objekte in einem Array selbst benennen. In diesem Fall wird keine Indexnummer verwendet, so wie in dem Beispiel weiter oben, sondern Entwickler können selbst steuern, wie die Objekte im Index benannt werden. Dabei kann es sich auch um Abkürzungen oder Ziffernfolgen handeln. Die Syntax dazu ist recht ähnlich zum Beispiel oben:

$produkt = array (
   „Produkt1“ => „Pro1“,
   „Produkt2“ => „Pro2“,
   „Produkt3“ => „Pro3“
);

Auch hier können zusätzliche Objekte aufgenommen werden:

$produkt [Produkt4] = „Pro4“;

Auch hier lassen sich die Werte wieder ausgeben:

print_r ($produkt);

Auch hier ist die Syntax mit den eckigen Klammern erlaubt:

$produkt = [
   „Produkt1“ => „Pro1“,
   „Produkt2“ => „Pro2“,
   „Produkt3“ => „Pro3“
];

PHP stellt spezielle assoziative Arrays bereits standardmäßig zur Verfügung, ohne dass diese erst erstellt werden müssen. Ein Beispiel dafür ist „$_SERVER“ um Informationen über den Server anzuzeigen. Welche Daten enthalten sind, lässt sich zum Beispiel mit ...

print_r ($_SERVER);

... anzeigen.

(ID:45510260)

Über den Autor

 Thomas Joos

Thomas Joos

Freiberuflicher Autor und Journalist