Arrays sollten dir aus anderen Programmiersprachen bereits bekannt
sein. Einfach ausgedrückt sind es Variablen in denen mehrer
Werte gespeichert werden können.
$array = array("Inhalt 1", "Inhalt 2",
"Inhalt 3");
Mit der Funktion array() definierst du ein
Array.
Um einzelne Werte aus dem Array auszulesen gehst du wie folgt
vor:
$ein_array = array("Inhalt 1", "Inhalt 2",
"Inhalt 3");
echo $ein_array[0];
Dieses Script gibt "Inhalt 1" aus. Wir haben keine
Schlüssel angegeben, daher hat PHP selbst Schlüssel
erstellt. PHP beginnt dabei mit dem Schlüssel [0]. Du kannst
natürlich die Schlüssel auch selbst benennen:
$ein_array[1] = "zweiter Wert";
$ein_array[2] = "dritter Wert";
$ein_array[0] = "erster Wert";
Übung F1
Ein numerisches Array soll folgende Inhalten haben:
Führerschein, Auto,Berechtigung, 18,
1. Erstelle dieses Array
2. Erstelle diese Ausgabe (fett geschrieben bedeutet: aus Array
auslesen):
Das 3. Element des Arrays ist vom Typ: string
Wenn man über 18 ist und einen
Führerschein besitzt, hat man die Berechtigung
ein Auto zu lenken!
Du benötigst
gettype() - siehe Datentypen
Lösung
|
Assoziative Arrays
Anstatt Arrays mit Nummern zu indizieren, kannst du auch Wörter
als Schlüssel benutzen. Arrays mit Zeichenketten als Schlüssel
nennt man assoziative Arrays. Beispiel:
$array = array("führerschein"=>"ja",
"alter"=>
22 );
echo $array["alter"];
Um nicht jeden Wert mit seinem Schlüssel auslesen zu müssen
kann man die foreach()-Schleife verweden.
foreach($array as $wert)
{
... PHP-Code ...
}
Komplettes Beispiel für foreach():
<?php
$obst = array("Apfel", "Birne", "Banane", "Kirsche");
foreach($obst as $wert)
echo "$wert<br>";
?>
Ausgabe im Browser:

Wichtige Array-Funktionen
Um die Anzahl der Werte in einem Array zu zählen verwendet
man count().
<?
$anzahl = count($obst);
?>
Der Rückgabewert würde in unserem Fall 4 ergeben, da sich vier
Werte im Array befinden.
Um zu überprüfen ob ein Wert bereits im Array vorkommt
verwendet man in_array().
<?
if(in_array("Apfel",$obst))
{
echo "Apfel ist im Array enthalten.";
}
?>
Befindet sich der Wert "Apfel" im Array $obst gibt
die if-Abfrage TRUE zurück und der Text wird ausgegeben..
Um einen neuen Wert in ein Array zu schreiben verwendet man array_push().
<?
array_push($obst,"Pflaume","Orange");
?>
In das Array $obst wurden nun die Werte Pflaume und Orange geschrieben.
Sortierfunktionen
Feldnamen sortieren:
ksort() (a,b,c,d) oder
krsort() (d,c,b,a)
<?
ksort($obst);
?>
Werte sortieren
asort() und
arsort()
<?
asort($obst);
?>
Übung F2
Erstelle ein Array mit mindestens 10 Elementen
gib dieses Array zuerst unsortiert und anschließend sortiert
aus:
Bsp:
Hans Fritz Daniel Manuel Armin Xaver Peter
Armin Daniel Fritz Hans Manuel Peter Xaver
Lösung
|
Weitere Arrayfunktionen
| Funktion |
Beispiel |
Beschreibung |
| array_count_values() |
$arr = array_count_values($liste); |
zählt die Häufigkeit des Auftretens aller Elemente und
gibt das Ergebnis in einem Array wieder |
| array_keys() |
$arr = array_keys($liste) |
gibt alle Schlüsselwörter eines assoziativen Arrays in
einem weiteren Array wieder |
| array_values() |
$arr = array_values($liste) |
gibt alle Elemente eines assoziativen Arrays in einem weiteren Array
wieder |
| array_reverse() |
$arr = array_reverse($liste) |
dreht ein Array um |
| in_array() |
$bool = in_array($wert, $array) |
gibt TRUE zurück, wenn der Wert im Array vorkommt |
| implode() |
$str = implode("§§", $liste)
§§ = Trennzeichen |
verbindet alle Arrayelemente zu einem String, in dem sie durch Trennzeichen
unterteilt sind |
| explode() |
$arr = explode("§§", $str); |
zerlegt einen String an bestimmten Trennzeichen und gibt das Ergebnis
als Array zurück |
| range() |
$arr = range(1, 100); |
erstellt ein Array als integer-Zahlen. Anfangs- und Endwert werden
als Parameter übergeben |
| shuffle() |
shuffle($liste); |
mischt die Elemente zufällig durch |
| array_merge() |
$arr = array_merge($liste1, $liste2); |
verbindet zwei Arrays zu einem Neuen |
Übung F3
Erstelle ein Array mit mindestens 10 Einträgen und
setze es zu einem String (mittels implode()) zusammen. Gib
diesen String aus.
Erstelle einen String mit mindestens 10 Wörtern und schreibe
diese 10 Wörter mittels explode() in ein Array. Gib dieses
Array aus.
Lösung
|
Der Arrayzeiger
Wie in Textdateien der Cursor funktioniert der Arrayzeiger in
Arrays. Man kann zum Beispiel den Arrayzeiger zu einem bestimmten
Schlüssel springen lassen und die Werte bearbeiten, auslesen,
löschen, ...
Standardmäßig steht dieser Zeiger beim ersten Schlüssel
(im numerischen Array bei 0). Mit verschiedenen Funktionen kann
dieser Zeiger bewegt werden.
| Funktion |
Beschreibung |
| current() |
gibt das Element aus einem Array zurück, auf das der Arrayzeiger
zeigt |
| each() |
gibt das nächste Schlüssel-Wert-Paar eines assoziativen
Arrays zurück |
| reset() |
setzt den Arrayzeiger auf das erste Element des Arrays |
| end() |
setzt den Arrayzeiger auf das letzte Element des Arrays |
| key() |
gibt den aktuellen Schlüssel des Elements wieder |
| next() |
setzt den Zeiger um ein Element weiter vor |
| prev() |
setzt den Zeiger um ein Element weiter zurück |
<?php
$liste = array(
"Martin", "Armin", "Xaver", "Peter", "Daniel", "Manuel", "Klaus",
"Patrick", "Clemens", "Christoph", "Dominik");
echo current($liste);
next($liste);
echo "<br>";
echo current($liste);
end($liste);
echo "<br>";
echo current($liste);
reset($liste);
echo "<br>";
echo current($liste);
?>
Übung F4
Folgende Ausgabe soll mittels PHP realisiert werden:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
41 43 27 92 35 52 80 7 20 96 83 82 17 86 79 75 15 24 64 119 59 98 26 81 25 22 45 14 28 4 100 91 36 117 9 68 93 62 56 2 33 72 115 50 85 90 108 47 61 37 49 63 110 58 97 55 40 6 118 54 73 88 112 18 77 38 109 121 12 95 34 99 76 32 78 51 104 111 105 65 120 74 31 116 5 11 87 46 70 21 29 16 8 23 44 101 84 67 10 94 106 60 113 13 102 53 103 42 66 48 1 57 39 107 19 89 69 3 71 114 30
Verwende dazu folgende Funktionen:
shuffle()
implode()
range()
Lösung
|
·:: Zurück weiter ::·