SELFPHP

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


Arrays erzeugen


Arrays kann man auf unterschiedlichste Weise erzeugen. Ich stelle Ihnen die Möglichkeiten zur Erzeugung eines Arrays im folgenden Abschnitt vor.


Indizierte Arrays

Um beispielsweise die Namen von bestimmten Personen zu speichern, können Sie indizierte Arrays verwenden. Hierzu benötigen Sie folgende Schreibweise:

$personen[] = "Matthias";
$personen[] = "Caroline";
$personen[] = "Gülten";
$personen[] = "Toni";

Daraus entsteht ein indiziertes Array. Der Index entsteht, indem jeder neue Wert an das Ende angehängt wird. Indizierte Arrays beginnen von 0 mit der Indizierung. Sie können natürlich auch gleich die Indexwerte einsetzen. Das folgende Beispiel entspricht dem vorhergehenden:

$personen[0] = "Matthias";
$personen[1] = "Caroline";
$personen[2] = "Gülten";
$personen[3] = "Toni";

Was die Indizierung betrifft, kann man sich Folgendes merken:

Sie müssen bei Zuweisungen nicht gezwungenermaßen Indizes angeben. Sie können beispielsweise ein leeres Array erzeugen, um sicherzugehen, dass der PHP-Interpreter dies erkennt, und anschließend das Array mit Werten füllen.

$daten = array();
$daten[] = "Erster Eintrag";
$daten[] = "Zweiter Eintrag";


array()

Als Alternative können Sie mit array() arbeiten.

$personen = array("Matthias","Caroline","Gülten","Toni");

Tipp: array() kann zusätzlich verschachtelt werden, um Arrays von Arrays von Arrays usw. zu erzeugen. Hiermit lassen sich komplexe Datenstrukturen abbilden.

Zur Ausgabe der im Array enthaltenen Einträge gehen Sie wie folgt vor:
echo "$personen[0]<br>";
echo "$personen[1]<br>";
echo "$personen[2]<br>";
echo "$personen[3]<br>";


Assoziative Arrays

Von assoziativen Arrays oder Hashes spricht man, wenn die Elemente im Array nicht über Indizes, sondern über Strings bzw. Schlüssel angesprochen werden. Das bereits gezeigte Beispiel könnte als assoziatives Array wie folgt aussehen:

$personen["P1"] = "Matthias";
$personen["P2"] = "Caroline";
$personen["P3"] = "Gülten";
$personen["P4"] = "Toni";

Zur Ausgabe der im Array enthaltenen Einträge gehen Sie wie folgt vor:

echo $personen["P1"] ."<br>";
echo $personen["P2"] ."<br>";
echo $personen["P3"] ."<br>";
echo $personen["P4"] ."<br>";

Ein assoziatives Array lässt sich natürlich auch mithilfe von array() erzeugen. Hierfür benötigen Sie zur Angabe des Schlüssels den Operator =>.{PSP}
$personen = array(
    "P1" => "Matthias",
    "P2" => "Caroline",
    "P3" => "Gülten",
    "P4" => "Toni"
    );

Ausgabe
echo $personen["P1"] ."<br>";
echo $personen["P2"] ."<br>";
echo $personen["P3"] ."<br>";
echo $personen["P4"] ."<br>";

Dies bringt zwar keinen Performancegewinn, der Quelltext wird jedoch bei konsequenter Anwendung leichter lesbar. Echte Vorteile ergeben sich bei der Nutzung von Daten, deren Umfang und Struktur Sie nicht genau abschätzen können oder nicht kennen. Wenn Sie indizierte Arrays mit Zählschleifen abfragen, kommen nur numerische Indizes in Betracht. Der direkte Zugriff auf ein bestimmtes Element, dessen Index Sie nicht kennen, bleibt Ihnen verwehrt.


Ein Array erzeugen, das nicht mit dem Index 0 beginnt

Sie wollen einem Array mehrere Elemente auf einmal zuweisen, hierbei soll jedoch der erste Index nicht 0 sein. Bringen Sie array() dazu, einen anderen Index zu verwenden, indem Sie die Syntax mit dem Operator => verwenden.

Beispiel

$personen = array( 1 => "Matthias", "Caroline", "Gülten");

Ausgabe
echo $personen[1];

Übrigens ist diese Anpassung des Index nicht nur auf die Zahl 1 beschränkt. Sie funktioniert mit jedem Integer-Wert.

Beispiel

$personen = array( 10 => "Matthias", "Caroline", "Gülten");

Ausgabe
echo $personen[10];
echo $personen[11];
echo $personen[12];

Sie können den Operator auch mehrmals innerhalb eines Aufrufs einsetzen.

Beispiel

$personen = array( 10 => "Matthias", "Caroline", 17 => "Gülten");

Ausgabe
echo $personen[10];
echo $personen[11];
echo $personen[17];

In PHP ist es sogar möglich, negative Zahlen im array()-Aufruf zu verwenden.

Beispiel

$personen = array( -10 => "Matthias", "Caroline", 17 => "Gülten");

Ausgabe
echo $personen[-10];
echo $personen[0];
echo $personen[17];

Dies funktioniert sogar bei Zahlen, die keine Integer-Werte sind. Technisch gesehen, ist das, was Sie dann erhalten, ein assoziatives Array.

Hinweis: Sie haben jederzeit die Möglichkeit, numerische und String-Schlüssel in einer array()-Definition zu vermischen, von dem Gebrauch dieser Möglichkeit ist jedoch Abstand zu nehmen, da dies zu Verwirrung und Fehlern führen kann.