ʫ

Sie haben den Artikel erfolgreich in den Warenkorb gelegt.
Was möchten Sie als nächstes tun?

Weiter einkaufen Zur Kasse

PHP Array erstellen und durchlaufen

Bei der Programmierung mit PHP müssen Sie oft nicht nur mit Variablen arbeiten, sondern mit auch mit PHP Arrays. Diese Arrays stellen Sammlungen und Strukturen von Daten dar, die nach dem Prinzip Schlüssel->Wert organisiert sind. Die Arrays können einfache indizierte PHP Arrays sein oder mehrdimensionale Arrays, wo Sie pro Schlüssel und Wert weitere Schlüssel->Wert Kombinationen haben, die auf einander referenzieren. Das würde bedeuten, dass bei einem mehrdimensionalen Array, Sie weitere Arrays als Werte der Elemente haben.

Mit Arrays können Sie organisierte Daten verwalten, bestimmte Datensammlungen erzeugen und diese dann gesondert durchsuchen und durchlaufen, um bestimmte Ausgabeformen zu erreichen. Gute Beispiele dafür sind die Ergebnisse von einer MySQL Abfrage:

  • Wenn Sie eine MySQL Abfrage haben, die eine Zeile mit mehreren Spalten als Ergebnis zurückgibt, so erhalten Sie ein einfaches assoziatives Array, wo Sie für jede Spalte in der MySQL Tabelle einen Wert haben. Das würde so aussehen - $mein_array['Name'] = "Wert Name", $mein_array['Produkt'] = "Wert Produkt"

  • Wenn Sie eine MySQL Abfrage ausführen, die mehrere Zeilen zurückgibt, dann haben Sie ein zwei-dimensionales Array als Ergebnis, wo der erste Schlüssel die Nummer der fortlaufenden Zeile ist und der zweite Schlüssel für die entsprechende Spalte in der MySQL Tabelle - $mein_array[2]['Name'] = "Wert Produkt von Zeile 3".

Nun kommen wir zum eigentlichen Problem - wie können wir diese Arrays durchsuchen und für eine Tabellenausgabe oder sonstiges mit Hilfe von PHP nutzen.

Lösung - PHP Array erzeugen

Wir fangen mit dem einfachsten - ein Array aus einer Zeichenkette, die Werte mit einem Separator wie Komma enthält:

$sStr = "Apfel,Birne,Essen,Salat";
$arr = explode(",", $sStr);

Hier haben wir die Zeichenkette, die vier Werte getrennt durch Komma enthält. Mit der PHP Funktion explode erzeugen Sie ein indiziertes Array mit Angabe des Trennzeichens. Dann haben Sie als Ergebnis:

$arr[0] = "Apfel";
$arr[1] = "Birne";
$arr[2] = "Essen";
$arr[3] = "Salat";

Für jedes Array Element erhalten wir automatisch eine fortlaufende Zahl als Index.
Der schnellste Weg ein Array auszudrucken ist mit der PHP Funktion print_r, was ein übersichtliches Ergebnis im Textform generiert:

print_r($arr);

Nun wollen wir die Werte selber durchlaufen und ausgeben:

foreach($arr as $arrElem) {
    echo $arrElem."
";

}

Oben interessieren uns die Indexe nicht - hauptsache wir kommen an den Wert ran. Die Ausgabe sieht nun so aus:

Apfel
Birne
Essen
Salat

Assoziatives PHP Array erzeugen und durchsuchen

Sie können auch assoziative Arrays erzeugen, wo Sie statt eine Zahl als Index, einen verständlichen Schlüssel haben. So ein Array käme von einer Datenbank oder kann direkt mit der Funktion array erzeugt werden:

$arr = array("Name" => "Müllers", "Vorname" => "Michael", "Titel" => "Programmierer");

Hier hätten Sie Arraywerte in dieser Form:

echo $arr['Name'];
#Ergebnis - "Müllers";

Sie können auch mit print_r den Inhalt des Array sehen, jedoch wollen wir natürlich auch dieses Array durchsuchen, um eine spezielle Ausgabe zu erhalten. Hier achten Sie auf die Schreibweise, damit wir auch in der foreach Schleife an die Schlüssel kommen:

foreach($arr as $key=>$Elem) {
     echo $key.": ".$Elem."
";

}

Das ist natürlich viel geschickter. Mit einem indizierten Array hätten wir gleich auch einen Counter in der Schleife einbauen können, der uns die Zahlen (immer ab 0) gibt, hier wird die Schleife anders aufgebaut. Nun das Ergebnis davon:

Name: Müllers
Vorname: Michael
Title: Programmierer

Mehrdimensionale PHP Arrays erzeugen und durchsuchen

Das Erzeugen von mehrdimensionalen PHP Arrays ist mit PHP sehr einfach. Dies bedeutet tatsächlich, dass wir statt einfache Werte pro Schlüssel, ganze Arrays haben. Um das zu zeigen, erzeugen wir uns ein Paar assoziative Arrays (Sie können auch einfache indizierte Arrays mehrdimensional aufbauen):

$arr1 = array("Name" => "Müllers", "Vorname" => "Michael", "Titel" => "Programmierer");
$arr2 = array("Name" => "Wagner", "Vorname" => "Harald", "Titel" => "Vertrieb");
$arr3 = array("Name" => "Olbrich", "Vorname" => "Klaus", "Titel" => "Aushilfe");

An dieser Stelle wissen wir, dass wir drei Arrays haben, die wir in einem mehrdimensionalen unterbrigen wollen. Wenn Sie mit MySQL Abfragedaten arbeiten, so gibt es Funktionen dort, die Ihnen genau sagen wie lange Ihre foreach Schleife laufen sollen. Nun erstellen wir ein mehrdimensionales Array in drei Schritten:

$arrMehrDim[] = $arr1;
$arrMehrDim[] = $arr2;
$arrMehrDim[] = $arr3;

Die leeren Klammern sind dafür da, Indexe von 0 für jedes weitere Element zu erzeugen. Jetzt haben wir Zugriff auf folgende Werte:

echo arrMehrDim[1]['Titel'];
#ERGEBNIS: "Vertrieb"

Mit print_r können Sie alles sehr übersichtlich sehen. Interessanter ist natürlich mit einer Schleife das Array durchzusuchen:

foreach($arrMehrDim as $SubArray) {
    echo "Name: ".$SubArray['Name']."
";
}

Nun konnten wir alle Namen untereinander ausgeben:

Name: Müllers
Name: Wagner
Name: Olbrich

Von hier aus sind die Möglichkeiten unbegrenzt!
Mit PHP Arrays können Sie sämtliche Strukturen Ihrer Seite verwalten. Viel Erfolg.

û