W3docs

key()

Die PHP-Funktion key() gibt den Schlüssel des aktuellen Elements eines Arrays zurück. Hier erfahren Sie Syntax, Rückgabewerte und praktische Beispiele.

Einführung

Jedes PHP-Array besitzt einen internen Zeiger, der eines seiner Elemente als das „aktuelle" markiert. Die Funktion key() gibt den Schlüssel des Elements zurück, auf das dieser Zeiger gerade zeigt. Sie gehört zur gleichen Familie wie current(), next(), prev(), reset() und end() — die Funktionen, mit denen man ein Array manuell durchlaufen kann, anstatt foreach zu verwenden.

Diese Seite erklärt die Syntax, was key() zurückgibt (einschließlich des Falls, in dem null zurückgegeben wird), und wie sie mit den anderen Zeigerfunktionen zusammenarbeitet.

Syntax

key(array $array): int|string|null

Die Funktion nimmt ein einzelnes Argument entgegen — das zu prüfende Array — und gibt den Schlüssel an der aktuellen Zeigerposition zurück. Das Array wird als Wert übergeben, sodass key() selbst den Zeiger nicht bewegt.

Rückgabewert:

  • Den aktuellen Schlüssel als int oder string.
  • null, wenn das Array leer ist oder der Zeiger über das letzte Element hinaus bewegt wurde.

Einfaches Beispiel

key() liest den Schlüssel, ohne die Position zu verändern; next() bewegt den Zeiger vorwärts.

<?php

$fruits = ['a' => 'apple', 'b' => 'banana', 'c' => 'cherry'];

echo key($fruits) . "\n";   // a  (pointer starts on the first element)

next($fruits);              // move the pointer forward
echo key($fruits) . "\n";   // b

Ausgabe:

a
b

Numerische Schlüssel

Wenn ein Array keine expliziten Schlüssel hat, verwendet PHP sequenzielle Integer-Schlüssel, beginnend bei 0, und key() gibt diese Integer zurück:

<?php

$colors = ['red', 'green', 'blue'];

echo key($colors) . "\n";   // 0

Ausgabe:

0

Wann key() null zurückgibt

key() gibt null in zwei Situationen zurück: Das Array ist leer, oder der Zeiger ist über das Ende hinausgelaufen. Die Prüfung auf null ist die idiomatische Methode, um beide Fälle zu erkennen:

<?php

$empty = [];
var_dump(key($empty));      // NULL — nothing to point at

$colors = ['red', 'green', 'blue'];
end($colors);               // pointer on the last element
next($colors);              // move past the end
var_dump(key($colors));     // NULL

Ausgabe:

NULL
NULL

Hinweis: Da ein gültiger Schlüssel die Ganzzahl 0 sein kann (die als falsy gilt), sollte beim Prüfen, ob der Zeiger noch im Bereich liegt, immer === null statt einer lockeren Wahrheitswertprüfung verwendet werden.

Ein Array manuell durchlaufen

Die Kombination aus key(), current() und next() ermöglicht es, ein Array zu iterieren und dabei sowohl auf den Schlüssel als auch auf den Wert zuzugreifen — und sauber anzuhalten, wenn key() null liefert:

<?php

$user = ['name' => 'Sara', 'role' => 'admin', 'active' => true];

reset($user);                       // make sure we start at the beginning
while (key($user) !== null) {
    echo key($user) . " => " . current($user) . "\n";
    next($user);
}

Ausgabe:

name => Sara
role => admin
active => 1

(true wird als 1 ausgegeben, weil PHP einen boolean beim Ausgeben in einen string umwandelt.)

Wann man sie verwenden sollte

Im alltäglichen Code gibt foreach bereits $key => $value zurück und ist die richtige Wahl für einfache Iteration. Greifen Sie auf key() und die manuellen Zeigerfunktionen zurück, wenn Sie feinere Kontrolle benötigen — zum Beispiel beim parallelen Verarbeiten mehrerer Arrays, beim Betrachten des aktuellen Schlüssels ohne das Element zu verbrauchen, oder beim Implementieren einer benutzerdefinierten Traversierung, die foreach nicht ausdrücken kann.

Fazit

Die Funktion key() gibt den Schlüssel des Elements am internen Zeiger eines Arrays zurück, oder null, wenn es nichts Gültiges zu zeigen gibt. Sie steht selten allein: In Kombination mit current(), next(), prev() und reset() ermöglicht sie eine manuelle, schrittweise Kontrolle über die Array-Traversierung — nützlich immer dann, wenn foreach zu grob für die Aufgabe ist.

Übungen

Übung
Was ist eine korrekte Verwendung der key()-Funktion in PHP?
Was ist eine korrekte Verwendung der key()-Funktion in PHP?
Was this page helpful?