# 4.10.2 Übersicht Array-Funktionen

Wichtige Array-Funktionen

Funktion | Erklärung
--- | ---
count() | Bestimmt die Anzahl der Elemente in einem Array.
next() | Rückt den Zeiger des Arrays auf das folgende Element.
prev() | Rückt den Zeiger des Arrays auf das vorherige Element.
end() | Setzt den Zeiger des Arrays auf das letzte Element.
current() | Liefert das aktuelle Element eines Arrays.
key() | Liefert den Schlüssel eines assoziativen Arrays.
list() | Überträgt Elemente eines Arrays auf einzelne Variablen.
unset() | Entfernt ein Element aus einem Array anhand seines Schlüssels.
implode() | Verbindet die Elemente eines Arrays zu einem String mit einem Trennzeichen.

Weitere Array-Funktionen

Funktion | Erklärung
--- | ---
array_keys() | Auslesen der Keys eines assoziativen Arrays. Hier ein Beispiel
array_pop() | Liefert und löscht das letzte Element eines indizierten oder assoziativen Arrays.
array_shift() | Liefert und löscht das erste Element eines indizierten oder assoziativen Arrays.
array_unshift() | Fügt ein oder mehr Elemente am Anfang eines Arrays ein.
array_slice() | Extrahiert ein Teil-Array aus einem Array.
array_values() | Gibt alle Werte eines Arrays zurück und indexiert sie neu ab 0.

### Beispiel für count(), current(), next() und end()

    <?php
    $cmyk = ["Cyan", "Magenta", "Yellow", "Key"];
    echo "Elementanzahl: ", count($cmyk);
    echo "<br>aktuelles Element: ", current($cmyk);
    echo "<br>nächstes Element: ", next($cmyk);
    echo "<br>letztes Element: ", end($cmyk);

Ausgabe:
Elementanzahl: 4
aktuelles Element: Cyan
nächstes Element: Magenta
letztes Element: Key

### Beispiel für implode() und array_slice()

    <?php
    // Daten aus einer "Tabelle"
    // nur die Ziffern in der Mitte sollen "herausgeholt" werden
    $data = [
        ['x', 'x', 1, 2, 3, 'x', 'x'],
        ['x', 'x', 4, 5, 6, 'x', 'x'],
        ['x', 'x', 7, 8, 9, 'x', 'x']
    ];
    // Extraktion der Nutzdaten
    foreach ($data as $row) {
        echo implode("; ", array_slice($row, 2, 3)) . "<br>";
    }

Ausgabe:
1; 2; 3
4; 5; 6
7; 8; 9

Die Funktion `array_slice(Array, Offset, Anzahl)` arbeitet mit drei Parametern. Zuerst wird das Array angegeben, dann wird angegeben, wie viele Elemente übersprungen werden sollen (= Offset) und als drittes wird die Anzahl der Elemente angegeben, die ausgelesen werden sollen.

### Beispiel für unset() bei einem indizierten Array

    <?php
    $zahlen = [10, 20, 30, 40, 50];

    // Entferne das Element mit dem Index 2 (Wert: 30)
    unset($zahlen[2]);

    // Ausgabe des Arrays nach dem Löschen
    foreach ($zahlen as $index => $wert) {
        echo "Index $index: $wert<br>";
    }

Ausgabe:
Index 0: 10
Index 1: 20
Index 3: 40
Index 4: 50

Hinweis: `unset()` löscht nur das Element, indiziert aber das Array nicht neu. Das bedeutet, dass der Index 2 fehlt und die ursprüngliche Reihenfolge erhalten bleibt – es entsteht eine Lücke im Index.

### Beispiel für unset() und array_values() bei einem indizierten Array

    <?php
    $zahlen = [10, 20, 30, 40, 50];

    // Entferne das Element mit dem Index 2 (Wert: 30)
    unset($zahlen[2]);

    // Indizes neu ordnen
    $zahlen = array_values($zahlen);

    // Ausgabe des Arrays nach dem Löschen und Neuindizierung
    foreach ($zahlen as $index => $wert) {
        echo "Index $index: $wert<br>";
    }

Ausgabe:
Index 0: 10
Index 1: 20
Index 2: 40
Index 3: 50

Hinweis: Mit `array_values()` wird das Array neu indiziert, sodass keine Lücke mehr in den Indizes vorhanden ist.

Und so sieht dies in Python aus

    1
    2
    3
    4
    5
    6
    7
    8
    zahlen = [10, 20, 30, 40, 50]

    # Entferne das Element mit Index 2 (Wert: 30)
    del zahlen[2]

    # Ausgabe der Liste nach dem Löschen
    for index, wert in enumerate(zahlen):
        print(f"Index {index}: {wert}")

### Beispiel für unset() bei einem assoziativen Array

    <?php
    $person = [
        "name" => "Mira",
        "alter" => 31,
        "stadt" => "Hamburg",
        "beruf" => "Entwicklerin"
    ];

    // Entferne die Elemente mit den Keys "alter" und "beruf"
    unset($person["alter"], $person["beruf"]);

    // Ausgabe des Arrays nach dem Löschen
    foreach ($person as $key => $wert) {
        echo "$key: $wert<br>";
    }

Ausgabe:
name: Mira
stadt: Hamburg

Hinweis: Mit `unset()` können mehrere Keys gleichzeitig entfernt werden, indem sie durch Kommas getrennt angegeben werden.

Und so sieht dies in Python aus

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    person = {
        "name": "Mira",
        "alter": 31,
        "stadt": "Hamburg",
        "beruf": "Entwicklerin"
    }

    # Entferne die Einträge mit den Keys "alter" und "beruf"
    del person["alter"]
    del person["beruf"]

    # Ausgabe des Dictionaries nach dem Löschen
    for key, wert in person.items():
        print(f"{key}: {wert}")