Die Grundlagen zum Thema Array kann man in meinem Javascripttipps oder Flashtipps nachschauen.
Ein Array ist so eine Art Variablensammlung (mal so ganz salopp beschrieben). Ein Array hat mehrere Elemente, auf die man mit einem Index zugreifen kann. Das folgende Array hat den selbstvergebenen Namen artikel und 3 Elemente.
$artikel[0] = "Bücher";
$artikel[1] = "Filme";
$artikel[2] = "Videos";
Der Aufruf von:
$artikel[1] liefert den Wert: Filme
array[], gettype(), count(), range()
Die folgenden Beispiele zeigen die beiden Schreibweisen, wie man sie vielleicht in ähnlicher Form auch von Javascript oder Actionscript kennt. Im Unterschied zu diesen Programmiersprachen ist eine Initialisierung mittels new Array() in PHP nicht nötig.
| Videos |
$artikel[0] = "Bücher"; $artikel[1] = "Filme"; $artikel[2] = "Videos"; $artikel[3] = "Tonträger"; echo $artikel[2]; |
| 1 |
$werte = array("Text", 123.45, true); echo $werte[2]; |
| array double |
echo gettype($werte); echo "<br>"; echo gettype ($werte[1]);
|
| 3 | echo count($werte); |
| 5 6 7 8 |
<?php $daten = range(5,8); echo $daten[0],"<br>"; echo $daten[1],"<br>"; echo $daten[2],"<br>"; echo $daten[3],"<br>"; ?> |
| <form> <Select size=4 > <?php $Optionen = array("Keramic", "Bilder", "Karten", "Bücher"); sort($Optionen); echo "<Option>", $Optionen[0]; echo "<Option>", $Optionen[1]; echo "<Option>", $Optionen[2]; echo "<Option>", $Optionen[3]; ?> </select></form> |
|
100 200 300 500 |
<?php $zahlen[0]=200; $zahlen[1]=300; $zahlen[2]=500; $zahlen[3]=100; sort($zahlen); echo $zahlen[0],"<br>"; echo $zahlen[1],"<br>"; echo $zahlen[2],"<br>"; echo $zahlen[3],"<br>"; ?> |
Mit list(argumente) kann man die Array-Inhalte direkt in Variablen schreiben. Das ist jedenfalls einfacher als Einzelzuweisungen nach dem Schema: $va1= nirva[0]; $va2=nirva[1]; ....etc.
| 205893 | <?php $nirva = array(20, 58, 93); list($va1, $va2, $va3)=$nirva; echo $va1; echo $va2; echo $va3; ?> |
Hier werden Elemente am Anfang des Arrays hinzugefügt mit array_unshift();
Als Argumente werden erwartet: zuerst Arrayname, dann die Inhalte der neuen Elemente
mit Kommata getrennt.
|
Leuchter Wachskugeln Buddhas Keramic Bilder Karten Bücher |
<?php $Optionen = array("Keramic", "Bilder", "Karten", "Bücher"); array_unshift($Optionen, "Leuchter", "Wachskugeln", "Buddhas"); echo $Optionen[0],"<br>"; echo $Optionen[1],"<br>"; echo $Optionen[2],"<br>"; echo $Optionen[3],"<br>"; echo $Optionen[4],"<br>"; echo $Optionen[5],"<br>"; echo $Optionen[6],"<br>"; ?> |
Am Ende ein Element löschen mit array_pop($Arrayname)
|
Bücher 6 Karten |
<?php echo array_pop($Optionen),"<br>"; echo count($Optionen),"<br>"; echo $Optionen[5],"<br>"; ?> |
Am Anfang ein Element löschen
|
Leuchter 5 Wachskugeln |
<?php echo array_shift($Optionen),"<br>"; echo count($Optionen),"<br>"; echo $Optionen[0],"<br>"; ?> |
Suchfunktion im Array mit in_array. Es wird allerdings nur der Wert true (bzw. 1) zurückgegeben, wenn der Wert vorhanden ist. Im ersten Argument wird der Suchbegriff angegeben, im zweiten der Arrayname.
| 1Wachskugeln | <?php echo in_array("Wachskugeln", $Optionen); echo current($Optionen); ?> |
Ein nicht numerischer Index, wird oft für Datenbanken gebraucht.
| Video | <?php $waren["ArtikelNr"]=1; $waren["ArtikelName"]="Buzz Lightyear"; $waren["ArtikelGruppe"]="Video"; $waren["Preis"]=10.50; echo $waren["ArtikelGruppe"]; ?> |
| <?php $Artikel = array( "ArtikelNr"=>1, "ArtikelName"=>"Clown", "ArtikelGruppe"=>"Video", "Preis"=>10.50 ); ?> |
Diese benannten Elemente lassen sich einfach in Variablen umwandeln und zwar mit dem Schlüsselwort extract($arrayname).
| 1Buzz LightyearVideo10.5 | <?php extract($waren); echo $ArtikelNr; echo $ArtikelName; echo $ArtikelGruppe; echo $Preis; ?> |
Mehrdimensionale Arrays muß man sich wie die Spalten und Reihen einer Tabelle vorstellen.
| <?php $Daten[0][0]="Walter Hirsch"; $Daten[0][1]="Glummersbach"; $Daten[0][2]="Am Huberweg 6"; $Daten[1][0]="Hubert Wankelmeier"; $Daten[1][1]="Moosbach"; $Daten[1][2]="Hupfenstr. 20"; ?> |
| Liesel Fuchsheimer | <?php $Adressen[0]=array("Alois Gamshuber","Waldesruh","Pfaffenweg 3"); $Adressen[1]=array("Liesel Fuchsheimer","Stöcklingen","Winklstr. 4"); echo $Adressen[1][0]; ?> |
| Am Gottesacker 3 | <?php $Mitglieder =array(0=>array("Werner Holdenberg", "Feldhausen", "Am Gottesacker 3"), 1=>array("Bärbel Schlunz", "Glummersbach", "Finkenteich 4") ); echo $Mitglieder[0][2]; ?> |
| Fichtelheim | <?php $Teilnehmer[0]["Name"]="Walter Gamshuber"; $Teilnehmer[0]["Wohnort"]="Floddenberg"; $Teilnehmer[0]["Strasse"]="Pfeifenstr. 3"; $Teilnehmer[1]["Name"]="Friedel Wachsmann"; $Teilnehmer[1]["Wohnort"]="Fichtelheim"; $Teilnehmer[1]["Strasse"]="Grüner Weg 6"; echo $Teilnehmer[1]["Wohnort"]; ?> |
|
Walter Gamshuber49 Friedel Wachsmann20 Gunter Freihorn40 Dieter Grünschuber35 Klaus Grabenrot54 |
<?php $id{0} = array("Name" => "Walter Gamshuber", "Hits" => 49); $id{1} = array("Name" => "Friedel Wachsmann", "Hits" => 20); $id{2} = array("Name" => "Gunter Freihorn", "Hits" => 40); $id{3} = array("Name" => "Dieter Grünschuber", "Hits" => 35); $id{4} = array("Name" => "Klaus Grabenrot", "Hits" => 54); $i=0; |
anstatt
$id{0} = array("Name" => "Walter Gamshuber", "Hits"
=> 49);
ist auch folgende Schreibweise möglich
$id[0] = array("Name" => "Walter Gamshuber", "Hits" => 49);
mehrdimensionale Arrays sortieren
Arraywerte auslesen mit foreach Schleife
Arraywerte als String mittels explode oder implode