PHP-Arrays
Zur Navigation springen
Zur Suche springen
Links
Zielsetzung
Es soll der Umgang mit Arrays geübt werden.
Erklärung
Ein Array ist eine Liste von Elementen. In PHP können Listen beliebige Objekte enthalten.
Einfache Arrays
Beispiel
$numbers = [ 2, 3, 5, 7, 11, 13, 17, 19, 23, 29];
$days = [ 'Mon', 'Die', 'Mit', 'Don', 'Fre', 'Sam', 'Son' ];
$things = [33, 'Hello', [33, 44], true];
- Das erste Array $numbers enthält Ganzzahlen.
- Das zweite Array $days enthält Strings (Zeichenketten).
- Das dritte Array $things enthält eine Zahl, einen String und ein Array, das selber 2 Zahlen enthält, und einen Wahrheitswert true.
Zugriff auf einfache Arrays
Auf einfache Array kann mittels des Index zugegriffen werden: Der Index ist die Positionszahl des Elements in der Liste, beginnend mit 0.
echo "Index 0: ", $numbers[0], " | ", $days[0], "\n";
echo "Index 1: ", $numbers[1], " | ", $days[1], "\n";
echo "Index 2: ", $numbers[2], " | ", $days[2], "\n";
Zugriff per Schleife auf ein Arrays
Wir können alle Elemente eines Arrays abklappern:
foreach($numbers as $item){
echo $item, " ";
}
echo "\n";
foreach($days as $day){
echo $day, " ";
}
echo "\n";
Array ändern
array_push($numbers, 31);
$position = 3;
array_splice($numbers, $position, 0, -5);
echo $numbers, "\n";
- Die erste Zeile fügt ein Element am Ende hinzu.
- Die dritte Zeile fügt das Element -5 an der Position 3 (ab 0 gezählt) ein.
Assoziative Arrays
In PHP können Schlüssel-Wert-Paare gespeichert werden. Es wird einem Schlüssel ein Wert zugeordnet. In diesem Fall wird als Index keine Zahl verwendet, sondern ein beliebiger Schlüssel, zum Beispiel ein String.
Beispiel
$passwords = [ 'Alice' => 'TopSecret', 'Bob' => 'ForgetIt', 'Charly' => 'NoNoNo' ];
$passwords['Diana'] = 'NobodyKnows';
unset($passwords['Diana']);
- In der ersten Zeile wird ein Array mit mehreren Einträgen gefüllt.
- In der zweiten Zeile wird ein Element hinzugefügt.
- In der dritten Zeile wird das Element mit Schlüssel 'Diana' wieder entfernt.
Zugriff über den Schlüssel
echo "Alice: ", $passwords['Alice'], "\n";
echo "Bob: ", $passwords['Bob'], "\n";
echo "Charly: ", $passwords['Charly'], "\n";
Alle Elemente in einer Schleife ansprechen
Es könne alle Elemente mittels einer foreach-Schleife angesprochen werden:
foreach ($passwords as $key => $value){
echo $key, ": ", $value, "\n";
}
$given = "WrongPw";
if ($passwords["Alice"] !== $given){
echo "+++ Fehler\n";
}