PHP-Arrays

Aus Vokabulabor
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";
}