Array

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

Index numerisch
indiziertes Array

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];
Ein Array kann unterschiedliche Datentypen aufnehmen, die man mit gettype() überprüfen kann. Gibt man als Argument von gettype den Arraynamen an, bekommt man als Datentyp array zurück.
array
double
echo gettype($werte);
echo "<br>";
echo gettype ($werte[1]);

 

Mit count() kann man die Anzahl der Elemente eines Arrays überprüfen.
3 echo count($werte);
Mit range() wird ein numerisches Array erzeugt mit den Werten der vorgebenen Zahlen. Die beiden Argumente sind: Anfangswert und Endwert. Das erste Argument darf nicht höher sein, als das zweite.
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>";
?>

Sortieren
mit sort() wird sortiert, hier alphabetisch
<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>
Hier wird numerisch sortiert.
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>";
?>
siehe auch Arrays sortieren

Werte in Variablen schreiben
list()

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;
?>

array_unshift

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>";

?>


array_pop()

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>";
?>

array_shift()

Am Anfang ein Element löschen

Leuchter
5
Wachskugeln
<?php
echo array_shift($Optionen),"<br>";
echo count($Optionen),"<br>";
echo $Optionen[0],"<br>";
?>

Suchen
in_array()

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);
?>

Index, nicht numerisch
assoziatives Array

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"];
?>
Auch diese Schreibweise mittels Arrayfunktion ist möglich.Beachte den Zuweisungsoperator =>
<?php
$Artikel = array(
"ArtikelNr"=>1,
"ArtikelName"=>"Clown",
"ArtikelGruppe"=>"Video",
"Preis"=>10.50
);
?>

Umwandeln in Variablen
extract()

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

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";
?>
Eine andere mögliche Schreibweise mittels Arrayfunktion ist folgende.
Liesel Fuchsheimer <?php
$Adressen[0]=array("Alois Gamshuber","Waldesruh","Pfaffenweg 3");
$Adressen[1]=array("Liesel Fuchsheimer","Stöcklingen","Winklstr. 4");
echo $Adressen[1][0];
?>
Folgende schwierigere Schreibweise ist auch möglich.
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];
?>
Kombiniert man in mehrdimensionalen Arrays numerische Werte mit Bezeichnungen als Indexwerte, hat man eine datensatzähnliche Struktur.
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"];
?>
Siehe auch foreach Schleife für Array
hier eine weitere Möglichkeit, ein mehrdimensionales Array zu erzeugen
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;
while($i<5){
echo $id[$i]["Name"].$id[$i]["Hits"]."<br>";
$i++;
} ?>

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


Übersicht weiter
Webdesign / PHP / mySQL / Dreamweaver MX Tipps
Copyright © Michael Albers
www.pastorpixel.de
www.pastorpixel.de PHP mySQL Tipps