if /
elseif /
else steuern wir den
Programmablauf abhängig von Bedingungen
<?php
$points = 68;
if ($points >= 60) {
echo "Bestanden";
} else {
echo "Nicht bestanden";
}
<?php
// Ohne Array - unpraktisch
$fruit1 = "Apfel";
$fruit2 = "Birne";
$fruit3 = "Kiwi";
// Mit Array - viel besser
$fruits = ["Apfel", "Birne", "Kiwi"];
0
[]
ist heute Standard, die alte Funktion
array() funktioniert weiterhin
<?php
$fruits = ["Apfel", "Birne", "Kiwi"];
// entspricht: $fruits = array("Apfel", "Birne", "Kiwi");
// Schlüssel: 0 => "Apfel", 1 => "Birne", 2 => "Kiwi"
echo $fruits[0]; // "Apfel"
echo $fruits[2]; // "Kiwi"
<?php
$fruits = ["Apfel", "Birne", "Kiwi"];
$fruits[1] = "Mango"; // Element ändern
echo $fruits[1]; // "Mango"
$fruits[] = "Orange"; // Element anhängen (Index 3)
echo $fruits[3]; // "Orange"
<?php
$person = [
"firstname" => "Anna",
"lastname" => "Muster",
"age" => 23,
];
echo $person["firstname"]; // "Anna"
$person["age"] = 24; // Wert ändern
<?php
$persons = [
["firstname" => "Anna", "age" => 23],
["firstname" => "Bruno", "age" => 31],
];
echo $persons[0]["firstname"]; // "Anna"
echo $persons[1]["age"]; // 31
count() ermittelt man die
Anzahl Elemente
<?php
$mixed = ["Anna", 23, true, [1, 2, 3]];
echo count($mixed); // 4
echo funktioniert nicht
direkt mit Arrays
print_r() zeigt den Inhalt
lesbar an, var_dump() zeigt
zusätzlich die Datentypen
<?php
$fruits = ["Apfel", "Birne", "Kiwi"];
print_r($fruits);
// Array ( [0] => Apfel [1] => Birne [2] => Kiwi )
var_dump($fruits);
// array(3) { [0]=> string(5) "Apfel" ... }
array_push($arr, $val) |
Element am Ende hinzufügen |
array_pop($arr) |
Letztes Element entfernen und zurückgeben |
array_unshift($arr, $val) |
Element am Anfang hinzufügen |
array_shift($arr) |
Erstes Element entfernen und zurückgeben |
unset($arr[$key]) |
Element mit bestimmtem Schlüssel entfernen |
in_array() prüft, ob ein
Wert im Array vorkommt
array_search() liefert den
Schlüssel eines gesuchten Werts (oder
false)
array_key_exists() prüft, ob
ein bestimmter Schlüssel existiert
<?php
$fruits = ["Apfel", "Birne", "Kiwi"];
var_dump(in_array("Kiwi", $fruits)); // bool(true)
var_dump(array_search("Kiwi", $fruits)); // int(2)
var_dump(array_key_exists(5, $fruits)); // bool(false)
sort() |
Aufsteigend sortieren, Schlüssel neu vergeben |
rsort() |
Absteigend sortieren, Schlüssel neu vergeben |
asort() |
Nach Werten sortieren, Schlüssel bleiben erhalten |
ksort() |
Nach Schlüsseln sortieren |
<?php
$numbers = [5, 3, 8, 1];
sort($numbers);
print_r($numbers); // [1, 3, 5, 8]
array_merge($a, $b) |
Zwei Arrays zusammenführen |
array_slice($arr, $off, $len) |
Ausschnitt aus einem Array holen |
array_reverse($arr) |
Reihenfolge umkehren |
array_unique($arr) |
Doppelte Werte entfernen |
array_sum($arr) |
Summe aller Werte berechnen |
<?php
// Ohne Schleife - unpraktisch
echo $fruits[0];
echo $fruits[1];
echo $fruits[2];
// Mit Schleife - viel besser
foreach ($fruits as $fruit) {
echo $fruit;
}
while |
Solange eine Bedingung zutrifft (Prüfung vorher) |
do-while |
Wie while, aber Prüfung
erst nach dem ersten Durchlauf |
for |
Wenn die Anzahl Durchläufe bekannt ist (Zähler) |
foreach |
Um alle Elemente eines Arrays zu durchlaufen |
while-Schleife
Die Bedingung wird vor jedem Durchlauf geprüft. Ist sie
von Anfang an false, wird der
Codeblock kein einziges Mal ausgeführt.
<?php
$i = 1;
while ($i <= 5) {
echo $i;
$i++; // wichtig, sonst Endlosschleife!
}
// Ausgabe: 12345
do-while-SchleifeDer Codeblock wird zuerst einmal ausgeführt und die Bedingung erst danach geprüft - daher läuft er mindestens einmal.
<?php
$i = 10;
do {
echo $i;
$i++;
} while ($i <= 5);
// Ausgabe: 10 - obwohl die Bedingung nie zutrifft!
for-SchleifeFasst Startwert, Bedingung und Schrittzähler in einer Zeile zusammen - ideal, wenn die Anzahl Durchläufe von Anfang an klar ist.
<?php
// Start; Bedingung; Schritt
for ($i = 1; $i <= 5; $i++) {
echo $i;
}
// Ausgabe: 12345
for mit Array-Index
Mit count() lässt sich auch ein
Array mit einer for-Schleife
durchlaufen - dabei hat man Zugriff auf den Index.
<?php
$fruits = ["Apfel", "Birne", "Kiwi"];
for ($i = 0; $i < count($fruits); $i++) {
echo $i . ": " . $fruits[$i];
}
foreach-SchleifeDurchläuft jedes Element eines Arrays automatisch - ohne Zähler und ohne Gefahr, sich beim Index zu vertun. Der Standardweg, um Arrays zu durchlaufen.
<?php
$fruits = ["Apfel", "Birne", "Kiwi"];
foreach ($fruits as $fruit) {
echo $fruit;
}
// Ausgabe: ApfelBirneKiwi
foreach mit Schlüssel und Wert
Mit as $key => $value erhält
man zusätzlich den Schlüssel - unerlässlich bei assoziativen
Arrays.
<?php
$person = [
"firstname" => "Anna",
"age" => 23,
];
foreach ($person as $key => $value) {
echo $key . ": " . $value;
}
// firstname: Anna
// age: 23
break und
continuebreak beendet die Schleife
sofort komplett
continue überspringt nur den
aktuellen Durchlauf und macht beim nächsten weiter
<?php
for ($i = 1; $i <= 10; $i++) {
if ($i == 5) {
break; // Schleife stoppt bei 5
}
echo $i;
}
// Ausgabe: 1234
for ($i = 1; $i <= 5; $i++) {
if ($i % 2 == 0) {
continue; // gerade Zahlen überspringen
}
echo $i;
}
// Ausgabe: 135
false,
läuft die Schleife für immer weiter und blockiert das Skript
<?php
$i = 1;
while ($i <= 5) {
echo $i;
// $i++; fehlt -> Endlosschleife!
}
Ein typisches Muster: mit einer Schleife alle Elemente durchgehen und dabei eine Bedingung prüfen.
<?php
$prices = [19.90, 45.00, 8.50, 120.00];
$total = 0;
foreach ($prices as $price) {
if ($price >= 20) {
$total += $price;
}
}
echo $total; // 165 (45 + 120)
count(),
in_array(),
array_search(),
sort(),
array_push() /
array_pop()
while und
do-while laufen, solange
eine Bedingung zutrifft
for eignet sich für eine
bekannte Anzahl Durchläufe, foreach
für das Durchlaufen von Arrays
break stoppt die Schleife,
continue überspringt nur den
aktuellen Durchlauf