Aus gesundheitlichen Gründen kann ich diese Seite nicht weiterpflegen, aktualisieren oder euch Support für eure PHP-Probleme anbieten. PHP für dich bleibt aber in seiner aktuellen Form erhalten und funktioniert nach wie vor als Einstieg in die PHP-Welt - gerade, wenn dich technischere Anleitungen bisher immer davon abgehalten haben.
Mehr dazu...
PHP
Speichere vieles...
... in einer "Variable" - das Array
Was ist eigentlich ein Array? Nun, ich würde ein Array als eine Variable, in der viele weitere Variablen gespeichert werden können beschreiben. Eine jede dieser "Variablen" ist durch eine eindeutige Nummer oder einen Begriff ansprechbar.
Ein Array bekommt, wie jede "normale" Variable einen Namen zugeordnet, jedoch erfolgt die Zuweisung der Inhalte nicht über ein einfaches Ist-Gleich, sondern über die Funktion
array.
<?php
$blumen = array("Rose", "Tulpe", "Nelke", "Sonnenblume");
?>
In diesem Fall existiert ein Array namens
blumen in das verschiedene Blumennamen geschrieben wurden. Diese Blumennamen haben jetzt automatisch Nummern zugewiesen bekommen, wobei die Nummerierung bei
0 beginnt (Rose hat also den Wert 0, Tulpe den Wert 1 usw.).
Der Zugriff erfolgt jetzt über den Arraynamen plus der Nummer des Eintrages in eckigen Klammern.
<?php
echo $blumen[3];
?>
In diesem Fall wird der Begriff
Sonnenblume ausgegeben.
In manchen Fällen ist die vorgegebene Nummerierung jedoch nicht verwendbar und so kann man auch selbst einen eindeutigen Namen (oder eine Nummer) für jeden Eintrag festlegen. Dabei schreibt man zunächst den Namen für den Wert und durch einen Pfeil (=>) getrennt den Wert.
<?php
$blumen = array("rot"=>"Rose", "rosa"=>"Tulpe", "weiss"=>"Nelke", "gelb"=>"Sonnenblume");
?>
Jetzt haben alle Blumennamen eine Farbe zugeordnet bekommen, über die sie angesprochen werden können.
<?php
echo $blumen["rosa"];
?>
Gibt somit
Tulpe aus.
Verwendet man Worte, so muss man diese unter Anführungszeichen setzen - weist man jedoch Zahlen zu, ist das nicht notwendig.
Es gibt bei Arrays eine Funktion, um zu überprüfen, wieviele Werte sich in dem Array befinden. Das kann z. B. dann genutzt werden, wenn man in das Array nur eine bestimmte Anzahl von Werten schreiben möchte. Der Befehl dazu lautet
count.
<?php
$anzahl = count($blumen);
?>
Der Rückgabewert würde in unserem Fall 4 ergeben, da sich vier Werte im Array befinden.
Eine weitere wichtige Funktion ist die Überprüfung, ob sich ein bestimmter Wert bereits im Array befindet (ich habe z. B. einen Zufallsgenerator für Lottozahlen programmiert und dabei alle Zahlen in ein Array geschrieben und davor immer abgefragt, ob die Zahl nicht schon existiert, damit kein Wert doppelt vorkommt).
Die Funktion dazu lautet
in_array und beinhaltet, welcher Wert gesucht wird und worin (in welchem Array) gesucht werden soll. Am sinnvollsten ist der Einsatz im Zusammenhang mit einer if-Abfrage.
<?php
if(in_array("Tulpe", $blumen))
{
echo "Tulpe ist im Array enthalten.";
}
?>
Hier wird überprüft, ob sich der Wert
Tulpe im Array
blumen befindet. Ist dies der Fall wird der Text ausgegeben - ansonsten passiert nichts.
Eine weitere Funktion, die ich beim oben erwähnten Lottozufallsgenerator verwendet habe war
array_push. Hierbei wird das Array um einen Wert erweitert - er wird in das Array dazugeschrieben. Die Zuweisung erfolgt so:
<?php
array_push($blumen,"Efeu","Kornblume");
?>
Zunächst wird festgelegt, welches Array erweitert werden soll und danach werden (durch Komma getrennt) die gewünschten Werte angegeben.
Beachte, dass hierbei kein Name für einen Wert zugewiesen werden kann. Wenn du diese Funktion in Verbindung mit einem Array, in dem du Namen zugewiesen hast, benutzt, wird das Array nicht erweitert.
Was bei Arrays noch von Interesse ist, ist die Sortierung der darin enthaltenen Werte. Diese kann auf unterschiedliche Arten erfolgen.
Möchte man die
Feldnamen sortieren, verwendet man die Funktionen
ksort oder
krsort, wobei
ksort eine aufsteigende Reihenfolge (a,b,c,d) liefert und
krsort eine absteigende (d,c,b,a).
<?php
ksort($blumen);
?>
Ergibt die Reihenfolge gelb (Sonnenblume), rosa (Tulpe), rot (Rose), weiss (Nelke). Die Werte werden jedoch nach wie vor auf die gleiche Art und Weise angesprochen ($arrayname[Feldname]).
Möchte man die Werte sortieren, gibt es die Funktionen
asort und
arsort. Auch hier sortiert
asort aufsteigend und
arsort absteigend.
<?php
asort($blumen);
?>
Hier ergibt sich die Reihenfolge Nelke, Rose, Sonnenblume, Tulpe. Auch im Fall eines Arrays, dem keine Feldnamen zugewiesen wurden, bleiben jedoch die Nummern der einzelnen Werte gleich (Nelke hat nach wie vor den Eintrag Nummer 2).
Wenn da jetzt aber alles gleich bleibt - wozu benötigt man überhaupt eine Sortierung?
Nun, es gibt auch eine Möglichkeit, nicht einen bestimmten Wert eines Arrays anzusprechen, sondern das gesamte Array auf einmal ausgeben zu lassen. Dazu dient die Funktion
foreach.
Mit foreach wird jeder Wert des Arrays vorrübergehend einer Variable zugeordnet und dann z. B. gelistet. Der Name der Variable wird durch den Befehl
as angegeben.
<?php
foreach($blumen as $meine_blume)
echo $meine_blume,"<br />";
?>
Die Liste würde dann so aussehen:
Rose
Tulpe
Nelke
Sonnenblume
Wende ich jetzt meine Sortierung an, ändert sich die Reihenfolge bei der Ausgabe ...
<?php
asort($blumen);
foreach($blumen as $meine_blume)
echo $meine_blume,"<br />";
?>
... ergibt folgendes ...
Nelke
Rose
Sonnenblume
Tulpe
Vielleicht ist dir aufgefallen, dass wir hier im Gegensatz zu den
if-Anweisungen keine geschwungenen Klammern verwendet haben. Das funktioniert in diesem Fall, weil wir nur eine einzige Anweisung (die echo-Anweisung) ausführen lassen. Möchten wir beispielsweise den Zeilenumbruch in eine extra echo-Anweisung schreiben müssen wir geschwungene Klammern verwenden um die Anweisung festzulegen.
<?php
foreach($blumen as $meine_blume)
{
echo $meine_blume;
echo "<br />";
}
?>
Diese Anweisung liefert genau das gleiche Ergebnis wie oben, jedoch ist die Schreibweise etwas anders.
Mit diesem System lassen sich auch if-Abfragen innerhalb einer foreach-Schleife bewerkstelligen (z. B. wenn man überprüfen möchte, ob gerade ein bestimmter Wert ausgegeben werden soll.
Den erwähnten Lottozufallsgenerator findest du übrigens im
Buch.
Und als nächstes verrate ich jetzt endlich den "Trick" mit dem richtig formatierten Datum.
Autor: Claudia Unkelbach