PHP-Arrays
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";
}