Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  Sprachelemente und Syntax  Teil von  Arrays
Professional CronJob-Service

Suche

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: SELFPHP Forum ::

Fragen rund um die Themen PHP?
In über 130.000 Beiträgen finden Sie sicher die passende Antwort!  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 
 
Mehrdimensionale Arrays: Seite 1

SELFPHP ist Shopware Solution Partner
Shopware ist ein vielfach ausgezeichnetes Onlineshop-System der shopware AG, das auf PHP. Zend Framework und SQL basiert.
SELFPHP unterstützt Sie als Shopware Solution Partner bei der Konzeption, Programmierung und Realisierung Ihres Onlineshops und passt Shopware bei Bedarf an Ihre Unternehmensbedürfnisse an. Weitere Informationen



Die Elemente eines Arrays können nicht nur Werte einfacher Datentypen (Zahlen, Strings, boolesche Werte), sondern auch Objekte oder andere Arrays sein. Letzteres eröffnet einige interessante Möglichkeiten. Um Ihnen den Einstieg in mehrdimensionale Arrays zu erleichtern, sollten Sie sich folgendes Beispiel anschauen:

// Array erzeugen
// Hinweis: das Array kunden enthält Elemente vom Typ Array
$kunden = array(
  array("Maier","Toni"),
  array("Müller","Fred"),
  array("Schmidt","Bernd")
);
// Wie kommen Sie nun an die Vornamen der Kunden heran?
echo $kunden[0][1]; // Ergebnis: Toni
echo $kunden[1][1]; // Ergebnis: Fred
echo $kunden[2][1]; // Ergebnis: Bernd

Was hierbei sicher auffällt, ist die besondere Struktur des Arrays $kunden. Es enthält wiederum Arrays. Jeder Kunde stellt ein eigenes Array dar, welches Elemente besitzt. Die Elemente der ungeordneten bzw. verschachtelten Arrays sind der Nachname und der Vorname des jeweiligen Kunden. Das Auslesen der Vornamen aus dem Array $kunden sollten Sie sich wie das Durchschauen von Akten vorstellen. In der ersten eckigen Klammer steht der Index des Arrays $kunden. Mithilfe des Index können Sie die einzelnen Akten einsehen. Im Beispiel haben Sie davon drei zur Auswahl. Die Akte des ersten Kunden trägt dabei den Index 0, da diese Akte im Array $kunden das erste Element symbolisiert. Sie haben nun die Akte!

In der zweiten eckigen Klammer steht der Index des untergeordneten Arrays (Akte). Mithilfe dieses Index können Sie die Elemente des untergeordneten Arrays abrufen. Es stehen sowohl der Nachname, das erste Element (Index 0), als auch der Vorname, das zweite Element (Index 1), zur Verfügung. Der Vorname des ersten Kunden trägt dabei den Index 1, da dieses Element im untergeordneten Array das zweite Element darstellt. Sie sind am Ziel! Um diese Arbeitsweise zu vertiefen, folgt ein weiteres Beispiel.

Fallbeispiel

Stellen Sie sich die Sitzplätze eines Flugzeugs vor, 40 Sitzplätze verteilt auf 10 Reihen zu je 4 Sitzplätzen. Ihre Aufgabe soll es nun sein, die Belegung dieser Sitzplätze in einem Programm zu verwalten und mithilfe von PHP umzusetzen. Hierbei bietet es sich an, die Plätze in Form eines Arrays zu verwalten.

Beispiel

// Array Erzeugen (leeres Array)
$sitze = array();

Dieser Ansatz erscheint auf den ersten Blick recht gut, nur gibt es ein Problem: Die Anordnung der Plätze ist jeweils in 10 Reihen zu je 4 Sitzplätzen aufgeteilt. In dem Array $sitze haben Sie jedoch nur die Möglichkeit, die Elemente eindimensional anzuordnen, ohne zwischen Reihen und Sitzplätzen pro Reihe zu unterscheiden. Sie merken dies vor allem dann, wenn jemand Platz 25 in Reihe 7 bucht und Sie dieses Element im Array auf true setzen wollen; true repräsentiert in diesem Fall belegt.

Geschickter ist es, jede einzelne Reihe als ein eigenes Array zu betrachten und das gesamte Flugzeug demnach als ein Array von zehn untergeordneten Arrayelementen anzusehen.

Beispiel
// For-Schleife (legt die untergeordneten Arrays fest)
for ($i = 0; $i < 10; $i++) {
  $sitze[$i] = array(0,0,0,0);
}

Wie Sie sehen, ist noch eine for-Schleife eingesetzt worden, um Ihnen das Eingeben der untergeordneten Arrays zu ersparen. Der nächste Schritt besteht darin, die Elemente für die einzelnen Sitzplätze auf false zu setzen, um anzuzeigen, dass sie nicht belegt sind. Dazu werden wir zwei verschachtelte for-Schleifen verwenden. Die äußere for-Schleife geht die Elemente im Array sitze durch, sprich die einzelnen Reihen. Die innere for-Schleife geht die einzelnen Plätze des aktuellen Reihen-Arrays durch. Auf die einzelnen Elemente greift man dann über zwei Indexangaben zu. Die erste bezeichnet die Reihe, die zweite den Platz in der Reihe.

Beispiel

// Zuweisung der Belegung (Ausgangssituation: false)
for ($reihe = 1; $reihe <= count($sitze); $reihe++) {
  for ($platz = 1; $platz <= count($sitze[$reihe-1]); $platz++) {
    $sitze[$reihe-1][$platz-1] = 0;
  }
}

Nun sollten Sie zur Probe einen Sitzplatz buchen, wie wäre es mit Sitzplatz 25 in Reihe 7, und anschließend die gesamte Belegung ausgeben lassen.

Beispiel

// Sitzplatz 25 (Reihe 7) belegen
$sitze[6][0] = "belegt";
// Ausgabe der Belegung im Ausgabefenster
for ($reihe = 1; $reihe <= count($sitze); $reihe++) {
  print_r($sitze[$reihe-1]);
}




Arrays löschen
 




:: Premium-Partner ::

Webhosting/Serverlösungen

MECO Systemhaus GmbH & Co. KG weitere Premium-Partner
 

:: SELFPHP Sponsor ::

Sedo GmbH weitere Sponsoren
 


:: Buchempfehlung ::

Webseiten professionell erstellen

Webseiten professionell erstellen zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Webhosting/Serverlösungen

Suchen Sie den für Sie passenden IT-Dienstleister für Ihr Webhosting-Paket oder Ihre Serverlösung?

Sie sind nur ein paar Klicks davon entfernt!


 

Ausgewählter Tipp im Bereich PHP-Skripte


Tags in Variablen ersetzen

Weitere interessante Beispiele aus dem SELFPHP Kochbuch finden Sie im Bereich PHP-Skripte
 

SELFPHP Code Snippet


Datenbank-Traffic seit dessen Start ermitteln

Weitere interessante Code Snippets finden Sie auf SELFPHP im Bereich PHP Code Snippets
 
© 2001-2017 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt
© 2005-2017 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de