Große Datenengen speichert man in Arrays. So wie sich auf einem Feld gleiche Apfelsorten wiederholen, wiederholen sich in Arrays Werte gleichen Datentyps. Für den Zugriff verwendet man typischerweise einen Index. Mithilfe einer Schleife kann man sehr elegant auf die einzelnen Werte zugreifen.
In diesem Artikel wird der grundsätzliche Aufbau von Arrays mit Datentyp und Index erklärt. Mit Hilfe von foreach
-Schleifen wird auf jeden einzelnen Wert zugegriffen.
Große Datenmengen speichert man in Arrays. So wie sich auf einem Feld gleiche Apfelsorten wiederholen, wiederholen sich in Arrays Werte gleichen Datentyps. Vermutlich hat man deshalb den Begriff Array im deutschen auch mit dem Wort Feld übersetzt.
Als Beispiel soll folgende Tabelle in einem Array gespeichert werden:Index | 0 | 1 | 2 |
0 | Gala | rot | süß |
1 | Elstar | rot | fein säuerlich |
2 | Delicious | grün | süß aromatisch |
Ein einzeiliges Array legt man mit dem reservierten Wort array(..)
an. Die Initialisierung erfolgt durch Angabe der Werte, welche durch ein Komma getrennt werden. Der Index wird automatisch zugewiesen und beginnt immer bei Null.
<?php
$apple = array("Gala", "Elstar", "Delicious");
?>
Ein mehrdimensionales Array hat nun je nach Verschachtelung mehrere Indizes, hier zwei. Die Indizes werden auch hier automatisch zugewiesen und beginnen immer bei Null.
<?php
$apple = array(
array("Gala", "rot", "süß"),
array("Elstar", "rot", "sauer"),
array("Delicious", "grün", "süß")
);
?>
Für den Zugriff auf eine Apfelsorte gibt man die entsprechenden Indizes in eckigen Klammern an:
<?php
echo 'Apfelsorte:'. $apple[1][0];
?>
Möchte man einen Wert ersetzen geht dies auch über den Index:
<?php
$apple[0][0]="Boskoop";
$apple[0][1]="rot";
$apple[0][2]="säurebetont";
?>
Gala ist rot und schmeckt süß.
Elstar ist rot und schmeckt sauer.
Delicious ist grün und schmeckt süß.
<?php
$apple = array(
array("Gala", "rot", "süß"),
array("Elstar", "rot", "sauer"),
array("Delicious", "grün", "süß")
);
?>
<p><?= $apple[0][0]?> ist <?= $apple[0][1]?> und schmeckt <?= $apple[0][2]?>.<br>
<?= $apple[1][0]?> ist <?= $apple[1][1]?> und schmeckt <?= $apple[1][2]?>.<br>
<?= $apple[2][0]?> ist <?= $apple[2][1]?> und schmeckt <?= $apple[2][2]?>.</p>
<?php
$apple = array(
array("Gala", "rot", "süß"),
array("Elstar", "rot", "sauer"),
array("Delicious", "grün", "süß")
);
?>
<form method="GET" action="#formulareingabe1">
Wähle eine Apfelsorte.<br>
<select class="form-select" aria-label=".form-select-lg example" name="sorte">
<option selected value="0"><?=$apple[0][0]?></option>
<option value="1"><?=$apple[1][0]?></option>
<option value="2"><?=$apple[2][0]?></option>
</select>
<button type="submit" class="btn btn-outline-primary">Mehr Info</button>
</form>
<p>Die Apfelsorte <?= $apple[$_GET['sorte']][0]?> ist <?= $apple[$_GET['sorte']][1]?> und schmeckt <?= $apple[$_GET['sorte']][2]?>.</p>
Möchte man auf ein eindimensionales Array zugreifen,verwendet man eine for-Schleife. Der Zugriff auf ein mehrdimensionales gelingt mit der verschachtelten for-Schleife:
<?php for($i=0; $i<3; $i++){?>
<br>
<?php for($j=0; $j<3; $j++){?>
<?= $apple[$i][$j]?>
<?php } ?>
<?php } ?>
Der Nachteil dieser Methode liegt darin, dass es etwas unübersichtlich ist und das die Anzahl der Einträge bekannt sein muß. Aus diesem Grund gibt es die for-each-Schleife:
<?php foreach ($apple as $ausgabe){?>
<br>
<?= $ausgabe[0]?>
<?= $ausgabe[1]?>
<?= $ausgabe[2]?>
<?php } ?>
Sorte | Farbe | Geschmack | kgPreis |
---|---|---|---|
Gala | rot | süß | 2.7 |
Elstar | rot | sauer | 2.3 |
Delicious | grün | süß | 2.8 |
<?php
$apple = array(
array("Gala", "rot", "süß", 2.70),
array("Elstar", "rot", "sauer", 2.30),
array("Delicious", "grün", "süß", 2.80)
);
?>
<table class="table table-striped">
<tr>
<th>Sorte</th>
<th>Farbe</th>
<th>Geschmack</th>
<th>kgPreis in EUR</th>
</tr>
<?php foreach ($apple as $ausgabe){?>
<tr>
<td><?= $ausgabe[0]?></td>
<td><?= $ausgabe[1]?></td>
<td><?= $ausgabe[2]?></td>
<td><?= $ausgabe[3]?></td>
</tr>
<?php } ?>
</table>
<form method="GET" action="#formulareingabe2" class="row g-3">
<p>Wähle eine Apfelsorte und Menge.<br>
<select class="form-select mb-3 mt-1 col-auto" aria-label=".form-select-lg example" name="sorte">
<option selected value="0"><?=$apple[0][0]?></option>
<option value="1"><?=$apple[1][0]?></option>
<option value="2"><?=$apple[2][0]?></option>
</select>
<input type="number" class="form-control" name="amount" min="1" max="4" step="0.5" placeholder="Menge in kg">
<div class="mt-1 d-grid gap-2 d-sm-block d-print-none">
<button type="submit" class="btn btn-outline-primary mb-3">in den 🛒</button>
</div>
</form>
<br>
<?php if(isset($_GET['sorte'])){
$kosten=$_GET['amount']*$apple[$_GET['sorte']][3];
$wert=number_format($kosten, 2, ',', '.');?>
<p>Menge: <?= $_GET['amount']?> kg
<?= $apple[$_GET['sorte']][0]?><br>
Preis: <?= $wert?> €</p>
<?php }?>
Wähle die korrekten Aussagen aus.
Gegeben ist folgender Quellcode in php:
$apple = array(
array("Gala", "rot", "süß", 2.70),
array("Elstar", "rot", "sauer", 2.30),
array("Delicious", "grün", "süß", 2.80)
);
Greife auf die erste Apfelsorte zu.
Wähle eine Antwort.
$apple[1][1]
$apple[0][1]
$apple[1][0]
$apple[0][0]
$apple[3][1]
$apple[1][3]
$apple[2][2]
$apple[3][3]
Ändere den Geschmack von Elstar auf "aromatisch".
Wähle eine Antwort.
$apple[1][3]="aromatisch"
$apple[1][4]="aromatisch"
$apple[1][2]="aromatisch"
"aromatisch"=$apple[1][1]
Aktualisiere den Preis von Gala auf 1,90 €.
Wähle eine Antwort.
$apple[0][3]=1.9
$apple[1][3]=1.9
$apple[1][3]=1,9
$apple[0][3]="1.9"
Gib die zweite Zeile aus.
Wähle eine Antwort.
foreach($apple as $ausgabe) $ausgabe[1]
foreach($apple as $ausgabe) $ausgabe[2]
foreach($apple as $ausgabe) $apple[1]
foreach($ausgabe as $apple) $apple[1]
Gib die erste Zeile aus.
Wähle eine Antwort.
for($i=0;$i<3;$i++) $apple[0][$i]
for($i=0;$i<4;$i++) $apple[$i][0]
for($i=0;$i<4;$i++) $apple[0][$i]
for($i=0;$i<=4;$i++) $apple[0][$i]
Australien ist ein Kontinent mit einer einzigartigen Fauna und Flora.
Der Elsey Nationalpark liegt im Norden Australiens und zeichnet sich durch warme Quellen und eine tolle Tiervielfalt aus.
Wähle die korrekten Aussagen aus.
Ausgabe: 1 2 3 4 5
Bestimme das zugehörige Array.
Wähle eine Antwort.
$wert = array(1 2 3 4 5);
$wert = 1,2,3,4,5;
$wert = array(1,2,3,4,5);
foreach array(1,2,3,4,5);
Ausgabe: 1, 2, 3, 4, 5,
Bestimme den Quelltext für die Ausgabe.
Wähle eine Antwort.
$wert = array("1,");
for($i=1;$i<=5;$i++) echo $i;
for($i=1;$i<6;$i++) echo $wert[$i].', ';
for($i=0;$i<5;$i++) echo $wert[$i].", ";
Ausgabe: 5 4 3 2 1 0
Bestimme den Quelltext für die Ausgabe.
Wähle zwei Antworten.
for($i=5;$i>=0;$i-=1) echo $wert[$i]." ";
for($i=5;$i>=0;$i++) echo $wert[$i]." ";
for($i=5;$i>=0;$i--) echo $wert[$i]." ";
echo '5 4 3 2 1 0';
Ausgabe: A B C D
Initialisiere das Array $wert
Wähle eine Antwort.
$wert = array("A", "B", "C", "D");
$wert = array(A B C D);
$wert = array("A" "B" "C" "D");
$wert = "A", "B", "C", "D";
das Array, -s | Feld mit vielen Werten eines Datentyps |
der Index, Indizes | Wert mit dem auf einzelne Arrayelemente zugegriffen wird. |
die for-Schleife, -n | eine Anweisung zum Wiederholen von Programmteilenfor($i = 0; $i < 4; $i++){...} |
die foreach-Schleife, -n | Schleife um alle Elemente eines Arrays auszugeben foreach($i as $ausgabe){...} |