Haumis wbb hilfe 
Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite
Galerie Datenbank Zum Portal

Startseite| Das Board| wbb2| wbblite| Wo finde ich was| Veränderungen| Grafik-Bereich-WBB2| Boardspiele| Vorstellungen| Allgemeines| Trainingscenter|
Haumis wbb hilfe » ...:::Trainingscenter-wbb2:::... » php » Variable als arrays » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Variable als arrays
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
haumi haumi ist männlich
Boardbetreiber

images/avatars/avatar-214.jpg
[meine Galerie]


Dabei seit: 06.06.2009
Beiträge: 3.441
Herkunft: NRW
Postid: 11472
Variable als arrays Beitrag Nr.: 1     Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

In den meisten Fällen haben wir es bei Variablen mit arrays zu tun.
Darum hier der Versuch das array mal etwas näher zu bringen.
Wie kann man sich ein Array vorstellen?
Ein Adventskalender wäre z. B. so ein array.
Er besteht aus einem Behältnis mit 24 Türchen, die von 1 - 24 beschriftet sind.
Will man nun den Inhalt hinter dem 6. Türchen erhalten, so muss man sich den Adventskalender nehmen und das 6te Türchen öffnen.

In php würde das so aussehen:

$Adventslalender - ist das Behältnis mit 24 Einträgen
[6] ist das Türchen.

Um also den Inhalt des 6ten Eintrags zu erhalten und in der Variablen Eintrag6 abzuspeichern schreibt man:
$Eintrag6 = $Adventslalender[6]

Einen kleinen Schönheitsfehler hat das Ganze und der führt auch oft zu Missverständnissen und das ist folgender:
Wärend wir bei allen Aufzählungen mit 1 beginnen, so beginnt in einen array die Zählung bei 0.
Der Kalender hat die Türchen 1 - 24 und das array die Einträge 0 - 23
Beide haben also 24 Türchen /Einträge nur die Zählung ist etwas unterschiedlich - man muss sich dran gewöhnen.

Nun basteln wir uns mal ein array zusammen.
In den meisten Fällen werden wir die arrays als Datenbankabfragen erhalten.
Um jedoch hier mal etwas zu experimentieren, basteln wir uns selbst mal eins zusammen und bringen da mal alles Mögliche ein.
Es gibt verschiedene Möglichkeiten ein array zu erstellen, die einfachste ist die Funktion array()

$feld = array(1,2,3); // wir erstellen ein array mit 3 Integer-Einträgen (0,1,2)

Unser array sieht so aus:

$feld[0] - 1
$feld[1] - 2
$feld[2] - 3

Wir fügen einem array weitere Felder hinzu, indem wir dem arraynamen mit einen leeren, eckigen Klammerpaar einen weiteren Wert zuweisen.
php legt automatisch als "name" die nächst höhere Ziffer an (hier also 3)

$feld[] = ( "Gustav" ); //wir fügen an der nächsten Stelle (3) eine Zeichenkette hinzu

unser array sieht nun so aus:

$feld[0] - 1
$feld[1] - 2
$feld[2] - 3
$feld[3] - Gustav

Man kann natürlich auch einen Platz bestimmen:

$feld[h] = true; //an der stelle h fügen wir den Wahrheitswert true ein


$feld[0] - 1
$feld[1] - 2
$feld[2] - 3
$feld[3] - Gustav
$feld[h] - 1

Hie stellt sich nun ein Phänomen ein.
Statt einer Ziffer taucht hier pöltzlich ein Buchstabe auf ($feld[h]).
Für php ist das kein Problem und wir stellen fest, das die Feldnamen numerisch indiziert sein können aber auch assoziativ - also Zeichenketten enthalten können.

setzen wir noch eins oben drauf und fügen dem array ein weiteres array hinzu:

$feld[] = array(8,"eins",true); // an der nächsten numerischen Position fügen wir ein array ein

$feld[0] - 1
$feld[1] - 2
$feld[2] - 3
$feld[3] - Gustav
$feld[h] - 1
$feld[4] - Array

da wir die eckige Klamer bei $feld leer lassen, verwendet php automatisch den nächst höheren Integerwert - nach der 3 also die 4.

das folgende kleine php-Programm erzeugt uns unsere Eingaben und bringt sie zur Anzeige:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
<?
$feld = array(1,2,3);
$feld[] = ("Gustav"); 
$feld[h] = true; 
$feld[] = array(8,"eins",true);

foreach($feld AS $uber => $inhalt) { 
	echo $uber . "  -  ".$inhalt;  
	echo "<br>";  
}
echo "<br><br>"; 
foreach($feld[4] AS $uber => $inhalt) {  
	echo $uber . "  -  ".$inhalt;  
	echo "<br>";  
}
?>


Zitat:
0 - 1
1 - 2
2 - 3
3 - Gustav
h - 1
4 - Array


0 - 8
1 - eins
2 - 1

Wenn wir nun mit
$zahl =count($feld);
die Anzahl der Elemente des arrays $feld ermitteln um diese zur Ausgabe der einzelnen Einträge zu benutzen z. B. mit einer for-Schleife.

for($i=0;$i<$zahl;$i++){
echo $feld[$i] ."<br>";
}

so erhalten wir die Ausgabe:
1 2 3 Gustav array - Warum?

die Ausgabe echo $array[$i]; liefert uns die Werte
echo $feld[0];
echo $feld[1];
echo $feld[2];
echo $feld[3];
echo $feld[4];
diese Arrayfelder werden gefunden,
dann kommt echo $feld[5]! das wird nicht gefunden da es nicht vorhanden ist. Somit endet hier die for Schleife mit einer Lücke, da der Eintrag $feld[h] nicht abgefragt und somit nicht gefunden wird.
Um diese Art Fehler zu vermeiden, sollen man im Zweifelsfall mit der foreach-Schleife arbeiten.
diese benutzt einen arrayinternen Zähler, der bei jedem Schleifenduchlauf immer eine Zeile (einen Eintrag) weiter zählt, unabhängig davon was da drin steht.
Aus diesem Grund wurde im obigen Script auch die foreach-Schleife eingesetzt.
Die Schreibweise diese Schleife ist.

foreach($feld AS $inhalt) // der aktuelle Wert des arrays $feld wird in der Variablen $inhalt gespeichert. (1 , 2 , 3 etc.)

oder

foreach($feld AS $schluessel => $inhalt) der aktuelle Schlüssel oder Name wird in der Variablen $schlüssel und der aktuelle Wert wird in der Variablen $inhalt gespeichert. (0 - 1 ,1 - 2 , 3 - Gustav , h - 1 etc.)

Soweit ein kleiner Ausflug zu den arrays.
Es gibt noch einige Dinge die man mit arrays anstellen kann aber das erklären wir, wenn es nötig ist.

LG
haumi

__________________
Gelassen das hinnehmen, was nicht zu ändern ist,
engagiert angehen was man gestalten kann.

10.04.2012 21:54 haumi ist offline E-Mail an haumi senden Homepage von haumi Beiträge von haumi suchenNehmen Sie haumi in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Haumis wbb hilfe » ...:::Trainingscenter-wbb2:::... » php » Variable als arrays

Views heute: 26.997 | Views gestern: 98.693 | Views gesamt: 71.094.066
Powered by Burning Board 2.3.6 © 2001-2004 WoltLab GmbH
Am Netz seit dem 3.6.2009 - Powered by © haumis-Team
Style & Buttons © by FriendsbistroTeam
Boardregeln Impressum & Haftungsauschluss Datenschutzerklärung